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

Python中or逻辑判断为何触发print语句?新手技术求助

Python逻辑表达式错误解析

你的问题出在逻辑表达式的写法和运算符优先级上:

  1. 表达式的实际执行逻辑
    你的代码中if 124 != A or B:会被Python按照运算符优先级解析为(124 != A) or B:

    • 首先计算124 != A:A的值是123,所以这个比较的结果是True
    • 然后计算True or B:B的值是124,在Python中非零数值会被视为布尔值True,所以整个表达式结果为True
      因此条件成立,触发了print语句。
  2. 单独使用if B != 124:逻辑正常的原因
    这个表达式直接比较B和124的关系,B的值是124,所以B != 124的结果是False,条件不成立,自然不会执行print。

  3. 正确的写法(匹配你的预期)
    如果你希望“当124不等于A并且124不等于B”时才执行print,应该把or换成and:

    A = 123
    B = 124
    
    if 124 != A and 124 != B:
        print("value doesn't match")
    

    此时因为124 != B是False,整个条件结果为False,不会执行print,符合你的预期。

    或者用更直观的逻辑表达:

    if not (124 == A or 124 == B):
        print("value doesn't match")
    

    这个表达式的意思是“当124既不等于A也不等于B时”执行打印,和上面的写法逻辑等价。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 12:21:49