为什么 5 <= -15 == 5 >= 1 != 20 是错误的?

Why 5 <= -15 == 5 >= 1 != 20 is False?

谁能告诉我为什么 5 <= -15 == 5 >= 1 != 20False

因为当我试图解决它时,我做了以下事情:

i) <= , >= 具有更高的优先级,因此它变为 False == True != 20

ii) ==,!= 具有相同的优先级,因此基于关联性,即从左到右变为 False != 20

iii) 最后,答案变成了True

但是,当我在 python 解释器中尝试相同时,它返回 False

我想了解为什么会这样? 提前致谢。

Python 的运算符优先级记录在案 here。与您声称的相反,所有这些比较运算符都具有相同的优先级。

通常,人们会优先考虑关联性来处理关系。但是比较运算符是特殊的。 Python 支持 chaining。这意味着

x relop1 y relop2 z

的缩写
x relop1 y and y relop2 z

(除了 y 只计算一次。)

所以,

    5 <= -15 == 5 >= 1 != 20
=   ( 5 <= -15 ) and ( -15 == 5 ) and ( 5 >= 1 ) and ( 1 != 20 )
=   False and False and True and True
=   False