python - 比较运算符优先级和绑定
问题描述
为什么表达式 1>=2==5<=4 结果为 False?
根据 python 3 的文档,运算符 >=,==,<= 具有相同的优先级并且从左到右绑定。根据规则,语句的评估应采用以下方式(假设 True=1 和 False=0):
1>=2==5<=4
=> False==5<=4
=> False<=4
=> True
我无法理解为什么这个表达式被评估为 False。我是 python 新手。谁能帮我理解这个运算符的优先级?
解决方案
根据文档,它没有从左到右完全评估。and
's 是隐含的
这是错误的,因为至少有一个(第一个)条件是错误的,导致短路评估
1>=2 and 2==5 and 5<=4
=> False and (doesn't matter)
=> False
推荐阅读
- c++ - 为 OLED SSD1306 编写包装器
- python - 在 tkinter 中嵌入 matplotlib:鼠标悬停时图形会四处移动
- r - 军官 R - 从不同目录中选择具有相同名称的图像时重复图像打印
- r - 如何使用向量的值对多维列联表进行子集化(即每个值指定一个维度)?
- java - Java - 对泛型 X 的引用应该被参数化
- java - 添加 Java JNI -Xcheck:jni 选项以在 Android Studio 中运行命令
- here-api - 使用 here-api 查找门牌号为 17 1/2 的地址
- python - AttributeError: 'NoneType' object has no attribute 'send' ,当我尝试将带有机器人的消息发送到特定的不和谐频道时
- pine-script - 回测 - 如果在上一次收盘和新交易之间没有发生条件,则不开仓
- javascript - MongoDB 使用聚合管道计算单个用户的所有喜欢和帖子