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

Python猜数字代码故障排查:输入首猜数后程序终止

问题排查与修复:猜数字程序输入一次后停止运行

你的代码核心问题是未初始化game_over变量:

  • 代码直接使用while not game_over作为循环条件,但game_over在这之前从未被定义过,第一次执行循环时会触发NameError,导致程序直接终止。

修复后的完整代码

import random
winning_number = random.randint(1,100)
guess = 1
# 初始化game_over变量为False,让循环可以正常启动
game_over = False
number = int(input("guess a number between 1 and 100: "))

while not game_over:
    if number == winning_number:
        print(f"you win, and you guessed this number in {guess} times ")
        game_over = True
    else:
        if number < winning_number:
            print("too low")
            guess += 1
            number = int(input("guess again: "))
        else:
            print("too high")
            guess += 1
            number = int(input("guess again: "))

额外优化建议(可选)

你可以把输入逻辑整合到循环内部,减少重复代码,让结构更简洁:

import random
winning_number = random.randint(1,100)
guess = 0
game_over = False

while not game_over:
    guess += 1
    number = int(input("guess a number between 1 and 100: "))
    if number == winning_number:
        print(f"you win, and you guessed this number in {guess} times ")
        game_over = True
    elif number < winning_number:
        print("too low")
    else:
        print("too high")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 15:05:20