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

如何修复Python猜数字游戏中的无限循环问题

解决猜数字游戏的无限循环问题

嘿,我一眼就揪出问题啦!你的代码陷入无限循环的核心原因是:在while循环内部没有更新用户输入的数字。

你看,原来的代码里,number只在循环开始前被赋值了一次。当第一次猜不对的时候,循环会一直用这个旧的number和固定的随机数rn比较,永远满足number != rn的条件,自然就停不下来了。

修复后的代码

import random

# 先固定生成一个1-10的随机数,避免循环内重复生成
rn = random.randint(1, 10)
# 第一次引导用户猜数字
number = int(input("Guess a number between 1 and 10: "))

while number != rn:
    print("Sorry. Try again.")
    # 给出高低提示
    if number < rn:
        print("Higher!")
    else:
        print("Lower!")
    # 关键:在循环内让用户输入新数字,更新number的值
    number = int(input("Guess again: "))

# 跳出循环说明猜中啦
print("Yes! You got it right!")

核心修改说明

  • 在while循环内部添加了number = int(input("Guess again: ")),这样每次循环都会获取用户的新输入,才有机会让number等于随机数rn,从而跳出循环。
  • 把随机数生成放在循环外,确保整个游戏过程中目标数字是固定的(原来的代码这里没问题,但调整位置逻辑更清晰)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:14:23