Python中的所有比较操作都具有相同的优先级,该优先级低于任何算术,移位或按位运算的优先级。因此,“ ==”和“ <”具有相同的优先级,为什么下面的第一个表达式求值True
,而不是第二个表达式?
>>> -1 < 0 == False
True
>>> (-1 < 0) == False
False
我希望两者都被评估为False
。为什么不是这样?
答案 0 :(得分:6)
Python有一个非常不错的功能-chained comparison,就像数学表达式一样,
-1 < 0 == False
实际上是syntactic sugar的
-1 < 0 and 0 == False
在引擎盖下