Python (1==1 | 2==1)为假?

Python (1==1 | 2==1)为假?,python,Python,如果我这样做,Python就会返回 >>> (1==1 | 2==1) False 但是 为什么? 编辑: 是或将解决“问题”。但我想问的是,为什么上面两个输出之间存在差异。答案是按位or优先,正如@MartijnPieters、@Cong-Ma、@Yohboy在评论中解释的那样 例如,在Pandas中,我们被迫使用位运算符,因为python的标准逻辑运算符不起作用,所以在这种情况下,我们应该小心操作 >>> ((1==1) | (2==1)) Pytho

如果我这样做,Python就会返回

>>> (1==1 | 2==1)
False
但是

为什么?

编辑:

将解决“问题”。但我想问的是,为什么上面两个输出之间存在差异。答案是按位or优先,正如@MartijnPieters、@Cong-Ma、@Yohboy在评论中解释的那样

例如,在Pandas中,我们被迫使用位运算符,因为python的标准逻辑运算符不起作用,所以在这种情况下,我们应该小心操作

>>> ((1==1) | (2==1))

Python运算符
|
不是逻辑or。试用

(1==1或2==1)


相反。

|不是逻辑or“or”是您要查找的关键字。

是按位or,而不是逻辑or。它与
具有不同的优先级,因此您计算了
1==(1 | 2)==1
,这与
1==(1 | 2)和(1 | 2)==1
相同
1 | 2
是3,所以
1==3==1
是false。这是一个.或添加括号:((1==1)|(2==1))研究按位运算符(他不是问如何修复,他是问为什么会发生这种行为)是的,我理解,但在这种情况下两者都会起作用。这个问题是最重要的。我将它们与panda一起使用,有时您无法使用
而不是
。然后指定您正在使用python与panda@user7867665一起使用
>>> ((1==1) | (2==1))