【发布时间】:2021-07-28 06:28:09
【问题描述】:
为什么for循环中的if语句不能正常工作? "0,1" 虽然小于 2,但仍然作为 True 返回。代码有点草率,抱歉。
def isprim(n):
for i in range(2,n-1):
if n % i == 0 or n < 2:
return False
return True
for i in range(50):
if isprim(i):
print(i)
输出是:
0 1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
【问题讨论】:
-
0, 1, 2 不会因为
range(2, n-1)而进入循环。因此,对于这些数字,它将始终返回True。 -
我投票结束这个问题,因为它没有证明语言或运行时有任何实际的不当行为。
标签: python for-loop if-statement or-operator