PyCharm中高低猜数字游戏代码运行异常问题求助
问题分析与修复方案
你的猜数字游戏代码存在几个关键问题导致无法正常运行,以下是具体问题和修正后的解决方案:
现存问题
- 未利用用户设定的上下限:你让用户输入了
lower_num和higher_num,但生成随机数时固定使用random.randint(0,10),完全忽略了用户的自定义范围。 - 仅读取一次猜测值:
guess_num在循环外仅获取一次,导致用户无法在猜错后输入新数字,程序会陷入无限循环重复判断同一个值。 - 缺少输入提示:获取
guess_num的input()没有提示文本,用户不知道此时需要输入猜测的数字。 - 提示文本冗余引号:打印的提示信息包含转义双引号,输出时会显示带引号的内容(如
"You guessed correctly!"),不符合常规显示逻辑。 - 提示信息表述不完整:
"Wrong, is too low."缺少主语,语义模糊。
修正后的代码
import random name = input("Enter your name: ") print("Hello and welcome to the game", name + "!") lower_num = int(input("Enter the Lower bound: ")) print() higher_num = int(input("Enter the Higher bound: ")) print() # 使用用户设定的上下限生成目标随机数 target_num = random.randint(lower_num, higher_num) while True: # 每次循环获取新的猜测值,并添加明确提示 guess_num = int(input(f"Guess a number between {lower_num} and {higher_num}: ")) if guess_num == target_num: print("\nYou guessed correctly!\n") break elif target_num > guess_num: print("\nWrong, your guess is too low.\n") elif target_num < guess_num: print("\nWrong, your guess is too high.\n")
关键修复说明
- 随机数范围修正:将
random.randint(0,10)改为random.randint(lower_num, higher_num),让随机数范围匹配用户设定的上下限。 - 移动猜测输入到循环内:把
guess_num的获取逻辑放在while True循环内部,确保用户每次猜错后都能输入新数字。 - 添加输入提示:给
input()添加格式化提示文本,明确告知用户需要猜测的数字范围。 - 优化提示文本:移除冗余的转义双引号,完善提示信息的表述,让反馈更清晰。
- 变量名优化:将
user_num改为target_num,更直观地表示这是需要猜测的目标数字。
内容的提问来源于stack exchange,提问作者Leticia Pollard-Torres
相关产品推荐
相关产品推荐

