If statement if表达式的计算结果为False,但仍将执行它
输出为:If statement if表达式的计算结果为False,但仍将执行它,if-statement,python-3.x,boolean,If Statement,Python 3.x,Boolean,输出为: for i in range(6, 21): for y in range(len(lst)): if i % lst[y] != 0 and i % 2 != 0 and i % 3 != 0 and i % 5 != 0 and i != lst[-1]: lst.append(i) print(lst) 那么,对于第二个七:7%3!=0(真)和i%2,3,5!=0(对)和我!=lst[-1](7!=7->FALSE),为什么列表会附加第二
for i in range(6, 21):
for y in range(len(lst)):
if i % lst[y] != 0 and i % 2 != 0 and i % 3 != 0 and i % 5 != 0 and i != lst[-1]:
lst.append(i)
print(lst)
那么,对于第二个七:7%3!=0(真)和i%2,3,5!=0(对)和我!=lst[-1](7!=7->FALSE),为什么列表会附加第二个7?您的代码,具有固定的缩进和初始值
lst
:
[2, 3, 5, 7, 7, 7, 11, 11, 11, 11, 11, 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 7]
[2, 3, 5, 7, 7, 7, 11, 11, 11, 11, 11, 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 7, 11]
[2, 3, 5, 7, 7, 7, 11, 11, 11, 11, 11, 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 7, 11, 13]
[2, 3, 5, 7, 7, 7, 11, 11, 11, 11, 11, 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 7, 11, 13, 17]
[2, 3, 5, 7, 7, 7, 11, 11, 11, 11, 11, 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 7, 11, 13, 17, 19]
告诉我:
lst=[2,3,5]
for i in range(6, 21):
for y in range(len(lst)):
if i % lst[y] != 0 and i % 2 != 0 and i % 3 != 0 and i % 5 != 0 and i != lst[-1]:
lst.append(i)
print(lst)
你确定你在你的问题中发布了相同的代码吗?lst列表的初始内容是什么?对不起,lst的初始内容是->lst=[2,3,5]我得到了
[2,3,5,7,11,13,17,19]
最后。是的,打印方法的缩进程度是问题所在。谢谢是的,但是在shell中(我不知道为什么),我的输出在第一篇文章中。但是如果我打开一个新文件并复制粘贴代码,我会看到与您相同的输出。您可能忘记将lst
重新调整为初始值,或者在缩进中出错。我无法复制您的输出,即使是在外壳中。谢谢您的回复。我还有一个问题:在条件I%lst[y]!=if表达式中的0,为什么将数字121添加到列表中,因为121%11!=0(FALSE)。当y等于0时,添加121。在这种情况下,您有:121%2!=0和121%2!=0和121%3!=0和121%5!=0和121%119!=0
。
[2, 3, 5, 7]
[2, 3, 5, 7, 11]
[2, 3, 5, 7, 11, 13]
[2, 3, 5, 7, 11, 13, 17]
[2, 3, 5, 7, 11, 13, 17, 19]