首页 > 解决方案 > 比较运算符优先级和绑定

问题描述

为什么表达式 1>=2==5<=4 结果为 False?

根据 python 3 的文档,运算符 >=,==,<= 具有相同的优先级并且从左到右绑定。根据规则,语句的评估应采用以下方式(假设 True=1 和 False=0):

1>=2==5<=4
=> False==5<=4
=> False<=4
=> True

我无法理解为什么这个表达式被评估为 False。我是 python 新手。谁能帮我理解这个运算符的优先级?

标签: pythonpython-3.x

解决方案


根据文档,它没有从左到右完全评估。and's 是隐含的

这是错误的,因为至少有一个(第一个)条件是错误的,导致短路评估

1>=2 and 2==5 and 5<=4
=> False and (doesn't matter)
=> False 

推荐阅读