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

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

关键修正说明:

  1. 开头添加from random import randint,确保随机数生成函数可用
  2. 将范围判断的if语句缩进至while循环内部,这样每次输入都会校验
  3. 修正范围判断条件为not (1 <= number_in <= 10),准确识别超出1-10的输入
  4. 修正提示文本中的范围错误,把1-6改成1-10
  5. 确保只有当输入是1-10的整数时,才会退出循环进入猜数判断环节

内容的提问来源于stack exchange,提问作者Andrea

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 20:15:42