查找1-20之间的素数,用append函数和remove函数的效果为什么不同?
def test1(n):# 判断n是不是素数
if n==1:
return 1
for i in range(2,n):
if n%i==0:
return n
num=list(range(1,21))
num1=[]
def test2():# 将一段区间内的所有素数存入一个列表
for i in num:
if None==test1(i):
num1.append(i)
print(num1)
test2()
返回[2, 3, 5, 7, 9]
为什么下面的程序保留的是奇数,包括9这样的合数?
def test3():
for i in num:
if i==test1(i):
num.remove(i)
print(num)
test3()
返回[2, 3, 5, 7, 9, 11, 13, 15, 17, 19]