Python运算符:数学优先级比较运算符与相等运算符

Praveen Dinelka
print 1>0 == (-1)<0           # => False
print (1>0) == ((-1)<0)       # => True

第一行打印False。第二行打印True

问题是,根据顺序比较运算符是否在相等运算符之上。

这两行都不应该打印True吗?(或至少是同一件事。)

https://www.codecademy.com/zh-CN/forum_questions/512cd091ffeb9e603b005713

布莱克金

在Python中,相等运算符和大于及小于运算符都具有相同的优先级。但是您会看到奇怪的事情,因为如何对一个具有多个比较运算符的表达式进行求值。Python与其使用优先级规则比较先前计算的结果,不如将它们与and(重复中间子表达式)链接在一起

该表达式1 > 0 == -1 < 0等效于(1 > 0) and (0 == -1) and (-1 < 0)(除了每个重复的子表达式,例如-1仅被评估一次,如果这是具有副作用的函数调用而不是整数文字,则可能很重要)。由于中间子表达式是False,整个就是False

在第二个版本中,括号防止所述比较链接情况的发生,所以它只是独立地评估不等式然后比较True == True这是True

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章