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

Python中or语句条件测试疑问:两段相似代码结果为何不同

问题原因解析

你遇到的问题是运算符优先级和代码执行顺序导致的,并非or逻辑本身出错,拆解来看:

错误代码的执行过程

对于代码:

number_1=18
number_2=20
print(number_1>=20) or (number_2>=20) 

Python会按照运算符优先级来执行:

  1. 先执行优先级更高的print(number_1>=20):number_1=18,所以18>=20的结果是False,print会直接输出这个False;同时print函数的返回值是None(所有没有return语句的函数默认返回None)。
  2. 接着执行None or (number_2>=20):number_2=20,20>=20的结果是True,所以整个or表达式的最终结果是True,但这个结果并没有被打印——你看到的输出只是第一步print的结果False。

正确代码的执行过程

而代码:

print(number_1>=20 or number_2>=20) 

是把整个or逻辑表达式作为print的参数:

  1. Python先计算number_1>=20 or number_2>=20的结果:因为number_2>=20为True,根据or逻辑“只要一个为真则整体为真”,整个表达式结果是True。
  2. 然后print把这个True输出,所以你看到了正确的结果。

验证示例

如果想直观看到错误代码的完整执行结果,可以加一行打印or表达式的结果:

number_1=18
number_2=20
result = print(number_1>=20) or (number_2>=20)
print(result)

运行后会先输出False(来自第一个print),然后输出True(or表达式的最终结果),就能清晰看到整个过程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 19:16:01