Python比较怪异

Python comparison weirdness

我有一个对象,我需要比较它的一些属性,我无法解释发生了什么,但以下是我的 VS 代码调试器的输出(我在每个输出前添加了“=”)

(0 > 55000 | 150 > 280)
=False # expected
250>150
=True # expected
True & False 
=False # expected
(250>150 & (0 > 55000 | 150 > 280))
=True # what????

对于数字,& 是“按位与”,| 是“按位或”。这些运算符的优先级高于 ><.

等比较运算符

150 & (0 > 55000 | 150 > 280) == 150 & 0 == 0 那么 150>0 就是 True.

您正在使用 binary bitwise operators &|。 您应该使用 boolean operators andor.

|和 & 是位运算符。位运算符比比较运算符具有更高的优先级。你应该改变'|'到“或”和“&”到“和”