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 and
和 or
.
|和 & 是位运算符。位运算符比比较运算符具有更高的优先级。你应该改变'|'到“或”和“&”到“和”
我有一个对象,我需要比较它的一些属性,我无法解释发生了什么,但以下是我的 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 and
和 or
.
|和 & 是位运算符。位运算符比比较运算符具有更高的优先级。你应该改变'|'到“或”和“&”到“和”