两种使用“或”的方式之间的区别

问题描述

从这两段代码中我得到了不同的答案。我对此感到困惑。为什么 i % 3 == 0 or i % 5 == 0 i % 3 or i % 5 == 0 不同?

>>>total = 0
>>>for i in range(1,100):
>>>    if i % 3 == 0 or i % 5 == 0:
>>>        total += i
...print(total)
>>>total = 0
>>>for i in range(1,100):
>>>    if i % 3 or i % 5 == 0:
>>>        total += i
...print(total)

解决方法

只需考虑一下(使用括号):

>>>total = 0
>>>for i in range(1,100):
>>>    if (i % 3 == 0) or (i % 5 == 0):
>>>        total += i
...print(total)

您首先要检查i%3 == 0,然后是i%5 == 0。在第二个示例中,您要检查i % 3是true还是i % 5 == 0。希望您看到有很大的不同