3 回答

TA贡献1772条经验 获得超6个赞
考虑一下:
a = 10
(a%3 == 0) and (a%5 == 0) # False
(a%3 and a%5) == 0 # True
第一次尝试给出False错误,因为它需要同时满足两个条件;你需要or代替。如果仔细观察,一些数字(例如15)被排除在外,与同时具有3和5作为因数的数字一致。
如果因为在第二次尝试是正确的a是不整除或者3或5,则表达式计算得到False,并0 == False给出True。更惯用的写法是:
not (a%3 and a%5)

TA贡献1818条经验 获得超3个赞
检查这也有效!100%
def result(N):
for num in range(N):
if num % 3 == 0 and num % 5 == 0:
print(str(num) + " ", end="")
else:
pass
if __name__ == "__main__":
N = 100
result(N)

TA贡献1863条经验 获得超2个赞
在他所关注的层面上有一个更清晰的答案
a = 1
while a <= 100:
if a%3 == 0 or a%5 ==0:
a = a+1
else:
print(a)
a = a+1
添加回答
举报