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

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")

关键修复说明

  1. 随机数范围修正:将random.randint(0,10)改为random.randint(lower_num, higher_num),让随机数范围匹配用户设定的上下限。
  2. 移动猜测输入到循环内:把guess_num的获取逻辑放在while True循环内部,确保用户每次猜错后都能输入新数字。
  3. 添加输入提示:给input()添加格式化提示文本,明确告知用户需要猜测的数字范围。
  4. 优化提示文本:移除冗余的转义双引号,完善提示信息的表述,让反馈更清晰。
  5. 变量名优化:将user_num改为target_num,更直观地表示这是需要猜测的目标数字。

内容的提问来源于stack exchange,提问作者Leticia Pollard-Torres

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 00:55:38