Yic*_*hun 4 python comparison-operators
Python中的所有比较运算都具有相同的优先级,该优先级低于任何算术,移位或按位运算。因此,“ ==”和“ <”具有相同的优先级,为什么下面的第一个表达式求值True不同于第二个表达式?
>>> -1 < 0 == False
True
>>> (-1 < 0) == False
False
Run Code Online (Sandbox Code Playgroud)
我希望两者都会得到评估False。为什么不是这样?
Python有一个非常不错的功能- 链式比较,就像在数学表达式中一样,因此
-1 < 0 == False
Run Code Online (Sandbox Code Playgroud)
实际上是一种语法糖用于
-1 < 0 and 0 == False
Run Code Online (Sandbox Code Playgroud)
在引擎盖下。