Python猜数字游戏开发求助:输入校验与代码逻辑问题排查
猜数字游戏代码修正方案
原代码存在的问题:
- 缩进错误:范围判断的
if语句不在while循环内部,导致循环无法正确处理输入范围校验 - 条件逻辑错误:范围判断写反了,且变量名写错(用了
number而非定义的number_in),提示文本还错误写成了1-6 - 缺少模块导入:使用
randint前没有从random模块导入该函数 - 循环终止逻辑错误:输入有效时才应该退出循环,原代码的
else break逻辑不成立
修正后的代码:
from random import randint while True: try: number_in = int(input("Please insert a number between 1-10: ")) except ValueError: print("Sorry. Try again to insert a number from 1 to 10") continue # 检查输入是否在1-10范围内 if not (1 <= number_in <= 10): print("Your input was invalid. Please insert a number from 1 to 10") continue else: break # 输入有效,退出循环 game_1 = randint(1, 10) if number_in == game_1: print(f"The result was {game_1}. Your guess was correct, congratulations!") else: print(f"The result was {game_1}. Your guess was NOT correct. Try again")
关键修正说明:
- 开头添加
from random import randint,确保随机数生成函数可用 - 将范围判断的
if语句缩进至while循环内部,这样每次输入都会校验 - 修正范围判断条件为
not (1 <= number_in <= 10),准确识别超出1-10的输入 - 修正提示文本中的范围错误,把1-6改成1-10
- 确保只有当输入是1-10的整数时,才会退出循环进入猜数判断环节
内容的提问来源于stack exchange,提问作者Andrea
相关产品推荐
相关产品推荐

