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

Boolean或运算符在`choice != "y" or choice != "yes"`判断中结果错误问题

问题原因

你的逻辑运算符使用错误,这是典型的布尔逻辑判断误区:
or运算符的规则是只要左右两边任意一个判断结果为真,整个条件表达式的结果就为真。代入不同输入场景验证就可以看出问题:

  • 当你输入y时:choice != "yes"的结果为真,整个if条件成立,触发break
  • 当你输入yes时:choice != "y"的结果为真,整个if条件成立,触发break
  • 当你输入其他内容时:两个判断结果都为真,同样触发break
    也就是说不管输入什么内容,这个if判断都会执行,循环永远会直接中断。

修复方案

有两种常用的修复方式:

方案1:将or替换为and

and要求左右两个判断同时为真时,整个条件才会成立,刚好匹配你的需求:只有当输入既不是y也不是yes时,才退出循环

choice = input("View another product?: ").lower()
if choice != "y" and choice != "yes":
    print("Bye") 
    break

方案2:使用成员判断优化可读性

这种写法更直观易懂,后续要新增允许的输入值也更方便:

choice = input("View another product?: ").lower()
if choice not in ("y", "yes"):
    print("Bye") 
    break

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:42:03