这次作业周五前有写好,但是没有发是想等着再思考一波看看能不能做完或者改进代码。但是周末事情有点多,耽搁了。下面放一下作业。
1、找出1-1000以内的质数
这个题之前有写过类似的,直接上代码吧。
num=[];
i=2
for i in range(2,1001):
j=2
for j in range(2,i):
if(i%j==0):
break
else:
num.append(i)
print('1-1000以内的质数有'+str(num))
运行结果:
2、判断[0,3,2,1]是否为山脉数值
我觉得这道题,如果单纯判断这个应该是很简单的,然后写了一个通用但同时也局限(只限四位数字)的代码。
num=[]
a=int(input('请输入第一个数字'))
b=int(input('请输入第二个数字'))
c=int(input('请输入第三个数字'))
d=int(input('请输入第四个数字'))
num.append([a,b,c,d])
if a<b and c<b and d<c:
print(str(num)+'是山脉数值')
else:
print(str(num)+'不是山脉数值')
运行结果:
不过不清楚怎么一次输入所有数值。后面是参考了某位兄弟的。
num=input("请你输入一个数组:")
print([num])
num=list(num)
a=num.pop(0)
b=num.pop(0)
c=num.pop(0)
d=num.pop(0)
if a<b and b>c and c>d:
print("该数组是山脉数组")
elif a<b and b<c and c>d:
print("该数组是山脉数组")
else:
print("该数组不是山脉数组")
然后是看了答案之后的代码:(果然开始想的太简单
a = list(input('输入连续数字'))
Jud = []
up = 0
down = 0
#遍历列表元素判断该元素位置前是否单调递增,后是否单调递减
for j in range(len(a)-1):
judge = True
print('-'*20,j,'-'*20)
value = a[j+1]
value_p = value
for previous in range(j,-1,-1):
if a[previous] < value_p:
print('目前递增,当前元素为{},上一个为{}'.format(value_p,a[previous]))
value_p = a[previous]
else:
judge = False
value_n = value
for next_num in range(j+2,len(a)):
if a[next_num] < value_n:
print('目前递减,当前元素为{},下一个为{}'.format(value_n,a[next_num]))
value_n = a[next_num]
else:
judge = False
#若有一个元素符合山脉数组定义,append judge=True python中True=1,False=0
Jud.append(judge)
print('-'*40)
#如果有一个元素符合山脉数组,输出是,反则不是
if sum(Jud) > 0:
print('是山脉数组')
else:
print('不是山脉数组')
(。)记录一下,看的不是很懂。
3、判断两个字符串是否为换位字符串。
这是开始的想法
str1=str(input('请输入第一个字符串'))
str2=str(input('请输入第二个字符串'))
list1=list(str1)
list2=list(str2)
a=len(list1)
b=len(list2)
if a==b:
for i in list1:
for j in list2:
if i==j:
print('[{},{}]是换位字符串'.format(str1,str2))
break
else:
print('[{},{}]不是换位字符串'.format(str1,str2))
break
else:
print('[{},{}]不是换位字符串'.format(str1,str2))
好家伙 结果如下:
看了结果就知道自己错哪了(。)后面打算复习一下内容再写。下面是一位小伙伴的结果,记录一下!
str1=str(input("输入第一个字符串:"))
str2=str(input("输入第二个字符串:"))
list1 = list(str1)
list2 = list(str2)
list1.sort()
list2.sort()
print(list1)
print(list2)
if list1==list2:
print('[{},{}]是换位字符串'.format(str1,str2))
else:
print('[{},{}]不是换位字符串'.format(str1,str2))
运行结果:
然后是网上搜索的(第一部分有自己修改):
str1=str(input('请输入第一个字符串'))
str2 =str(input('请输入第二个字符串'))
list1 = list(str1)
list2 = list(str2)
i = 0
hashTable1 = dict()
while i < len(str1):
if list1[i] not in hashTable1:
hashTable1[list1[i]] = 0
i += 1
i = 0
hashTable2 = dict()
while i < len(str2):
if list2[i] not in hashTable2:
hashTable2[list2[i]] = 0
i += 1
count = 0
for k, v in hashTable1.items():
if k in hashTable1:
count += 1
if count == len(hashTable2):
print("是换位字符")
#作者:天空之上02
#链接:https://www.jianshu.com/p/70d175bed433
#来源:简书
运行结果