今天遇到一个问题是关于python打印0~500内的所有质数的题,然后我用如下代码打印,发现在测试时打印0~10内的质数都满足不了,但是我感觉逻辑上好像没啥错误呀。求帮助~
def printzs(n):
if n==1 or n==0:
return False
for i in range(2,n-1):
if n%i==0:
return False
else:
return n
zs=filter(printzs,[x for x in range(0,10)])
print zs
else的缩进错了
def printzs(n):
if n==1 or n==0:
return False
for i in range(2,n-1):
if n%i==0:
return False
else:
return True
zs=filter(printzs,[x for x in range(0,10)])
print zs
[2, 3, 5, 7]
按照你的写法,就变成了只要有一个不能整除就算素数了,而实际上是都不能整除才是,所以else不是if的else而是for的。