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

Python if语句多条件错误写法下x=8为何输出yes

Python条件判断x==3 or 4输出yes的原因

你写的if x==3 or 4:会按照Python的运算符优先级规则被解析为if (x == 3) or (4):,而非你预期的if x ==3 or x ==4。

Python中逻辑或or的运算规则如下:

  • 从左到右依次判断每个操作数的布尔真值
  • 遇到第一个布尔值为True的操作数就直接返回该操作数,不会再判断后续内容
  • 如果所有操作数布尔值都为False,返回最后一个操作数

你的代码运算步骤:

  1. 首先计算左侧的x == 3:此时x赋值为8,该表达式结果为False
  2. 继续计算False or 4:非0整数的布尔值为True,所以整个表达式最终返回值为4
  3. if判断会对表达式返回值做布尔校验,4的布尔值为True,因此会执行print("yes")的分支

你可以运行以下测试代码验证该逻辑:

x = 8
print(x == 3 or 4) # 输出结果为4
print(bool(4)) # 输出结果为True
print(False or 0) # 输出0,对应布尔值为False,此时会走else分支

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:27:03