为什么 True & True 给出 False?

Why does True & True give False?

>>> 5 > 4 & 6 > 5

如果5 > 4True6 > 5也是True,为什么上面的表达式在Python中给出False

因为&(按位“与”)的优先级高于>,所以5 > 4 & 6 > 5实际上被计算为5 > 4 > 5这显然是False.

Operator precedence 在 Python 个文档上。

在python中,&运算符表示bitwise AND operator,它基本上采用整数的二进制形式,并用第二个数字掩盖第一个数字的二进制形式。

例如10 & 3 returns 2 因为10的二进制形式是1010,加上掩码3 ,我们取最后三位数字,并找到生成的二进制文件的值。在这种情况下,它是 010,十进制是 2.

您要查找的运算符是文字 and 运算符!:

>>> 5 > 4 and 6 > 5 
True

或者更好(我相信你已经知道了):

>>> 6 > 5 > 4
True