- First = [i for i in range(0,7*30,7)] #既然已经知道是 7 的倍数,直接造一个 7 的倍数的数列就好
- flag = 0 #小旗子
- for f in First:
- if (f%2 == 1)&(f%3 ==2)&(f%5==4)&(f%6==5):
- flag += 1 #或者 flag = 1
- print('Found a solution --->',f)
- if flag == 0: #找不到就举旗
- print('Number not found within range')
复制代码
还有比较有效率的方法。但是对初学者不直觉。
for 循环不是不能执行删除操作,而是如果执行,会出错。原因如下:
for 循环是 while 循环的包装。如果我们用 while 循环来写 for 循环的功能,那么我们会让指针 i = 0 开始跑。每跑一次,i+=1。假设你现在删除第 5 个元素,那么第 6 个元素以及后面的元素将往前移一格。现在第 5 个元素将会是原先的第 6 个元素。然后,程序执行 i+=1,指针指向第 6 个元素,但第 6 个元素是原先的第 7 个元素。所以原本在数组中的第 6 个元素被忽略了。因此,我们可以看到,你没删除一次,就会自动忽略一个元素的审查。
如果要按你原本的想法,那么你每做一次 for 循环,就要制造一个新的数组,把符合条件的数给留下
- a = []
- for f in First:
- if f % 3 == 2: #变成把符合的留下
- a.append(f)
复制代码
有想法是好的,先把你的想法给实现,你会学得更多~