Python掷骰子随机数小游戏无法退出while循环问题求助
问题排查结果
核心故障原因
while循环的逻辑判断条件编写错误,具体问题如下:
- 你当前使用的是
or(逻辑或)运算符,该运算符的规则是:只要左右两个判断条件有一个成立为真,整个表达式的结果就为真。
代入实际运行场景验证即可发现问题:- 若输入
N,user_choice != 'N'为假,但user_choice != 'n'为真,整体表达式结果仍为真,循环不会退出 - 若输入
n,user_choice != 'n'为假,但user_choice != 'N'为真,整体表达式结果仍为真,循环不会退出
无论输入什么内容,两个判断条件永远有一个成立,因此循环会永久运行无法终止。
- 若输入
修复方案
有两种常用修改方式,任选其一即可:
- 将
or替换为and(逻辑与)运算符,修改后条件为:
该逻辑表示只有输入既不等于大写N、也不等于小写n的时候才继续循环,输入任意大小写的N都会退出循环。while user_choice != 'N' and user_choice != 'n': - 更简洁易读的写法,直接判断输入是否在退出选项集合中:
while user_choice not in {'N', 'n'}:
修复后完整可运行代码
# Dice Rolling Random Number and Guessing Game import random user_choice = 'y' while user_choice not in {'N', 'n'}: print(random.randint(1,6)) user_choice = input("Do you want to continue: ") print("You are exited")
内容的提问来源于stack exchange,提问作者Ss367
相关产品推荐
相关产品推荐

