python-3.x 为什么切换==和!=运算符的顺序会改变返回的内容?[closed]

ylamdve6  于 2023-03-20  发布在  Python
关注(0)|答案(1)|浏览(88)

**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
13小时前关门了。
Improve this question

def func(x):
      if x % 3 != 0 & x % 5 == 0:
            return "five" # if divisible by only 5, return "five"
print(func(181)) # returns "five" instead of returning None

现在,相同的代码将操作数翻转:

def func(x):
      if x % 5 == 0 & x % 3 != 0:
            return "five"
print(func(181)) # returns None as intended and correct

有人能解释一下这个的条件流吗?我似乎不太理解。在第一个场景中,我们知道181不能被3整除--所以它检查条件的第二部分。181 % 5不是0,那么为什么仍然打印“five”而不是退出if语句?
在第二个场景中,我们知道181 % 5一开始不是0,所以我知道我们可以完全跳过这段代码,我理解为什么第二个场景能正确工作,但不理解为什么第一个场景不能正确工作,不管它效率有多低。

agxfikkp

agxfikkp1#

&是位AND运算符,请使用and关键字进行逻辑运算
&!=和

相关问题