Python while循环使用or判断用户输入时出现无限循环问题
代码运行异常原因
你的循环终止条件存在逻辑运算符误用的问题,核心错误出现在while的判断语句val != 'y' or val != 'Y'上:
- 布尔逻辑中
or的判定规则是:只要两侧任意一个条件为真,整个表达式结果就为真。 - 无论你输入任何内容,这个判断条件的结果永远为
True:- 当输入
y时,val != 'y'为假,但val != 'Y'为真,整个表达式结果为真,循环继续 - 当输入
Y时,val != 'y'为真,但val != 'Y'为假,整个表达式结果为真,循环继续 - 输入其他内容时,两个判断条件均为真,表达式结果仍为真,循环继续
- 当输入
修复方案
你可以选择以下任意一种方式修改判断条件:
- 将
or替换为and:
while val != 'y' and val != 'Y':
- 更简洁的写法,统一转换为小写后判断:
while val.lower() != 'y':
内容的提问来源于stack exchange,提问作者sudo
相关产品推荐
相关产品推荐

