我想打印 1-100 的数字,跳过可被 3 和 5 整除的数字,当我使用 code-1 时,我没有得到正确的输出,我得到的是 1-100 的完整计数
#CODE1
i=1
a=1
while i<=100:
if (a%3==0 and a%5==0) :
a=a+1
else:
print(a)
a=a+1
i=i+1
但是当我使用 CODE-2 时,我得到了想要的结果
#CODE2
i=1
a=1
while i<=100:
if ((a%3 and a%5)==0) :
a=a+1
else:
print(a)
a=a+1
i=i+1
注意代码的第四行,为什么第一行代码错了?
原文由 user10647398 发布,翻译遵循 CC BY-SA 4.0 许可协议
考虑一下:
第一次尝试给出
False
错误,因为它需要同时满足 两个 条件;你需要or
代替。如果你仔细看,一些数字(例如15
)被排除在外,与同时具有3
和5
作为因素的数字一致The second attempt is correct because if
a
is not divisible by either 3 or 5, the expression evaluates toFalse
, and0 == False
givesTrue
。更惯用的是写: