带变量和数的奇异逻辑行为

时间:2016-08-22 20:37:04

标签: python logic boolean-logic inequality

假设我按如下方式定义ab

a = 1
b = 1

然后我测试:

a == 1
#True

5>4
#True

a==1 & b==1
#True

5>4 & 4>3
#True

a==1 & 5>4
#False

最后一个怎么回事?我希望能够测试最后的不等式并获得True的结果。

2 个答案:

答案 0 :(得分:6)

在Python中&用于数字的位操作,而不是逻辑。请改用andor

答案 1 :(得分:-1)

  

与C不同,Python中的所有比较操作都具有相同的优先级,低于任何算术,移位或按位操作的优先级。与C不同,表达式如同< b< c具有数学常规的解释:

这意味着:

a==1 & 5>4 is equal to 
a == ( 1 % 5 ) > 4
a == 1 > 4
True > 4

False