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