You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中表达式0 < 0 == 0与加括号写法结果不同,是否为Bug?

Python中带括号与不带括号的比较表达式结果差异是否为Bug?

先看你给出的代码运行结果:

>>> 0 < 0 == 0
False

>>> (0 < 0) == 0
True

>>> 0 < (0 == 0)
True

这不是Bug,是Python的链式比较特性导致的,具体解释如下:

  • 无括号的0 < 0 == 0会被Python按链式比较规则解析为0 < 0 and 0 == 0:先判断0 < 0得到False,再判断0 == 0得到True,最终False and True结果为False。链式比较的设计是为了让表达式更贴近自然语言逻辑,同时中间的操作数只会被计算一次。
  • 带括号的(0 < 0) == 0会优先计算括号内的0 < 0得到False,Python中布尔值是整数的子类,False等价于0,因此False == 0的结果为True。
  • 带括号的0 < (0 == 0)优先计算括号内的0 == 0得到True,True等价于1,因此0 < 1的结果为True。

内容的提问来源于stack exchange,提问作者MrJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 00:22:36