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

猜数字游戏陷入while循环求助:无法退出且禁用return

猜数字游戏循环问题解决

你的代码陷入死循环的核心原因是循环内部没有更新guess变量的值。第一次输入guess后,只要它和目标数不相等,后续循环里guess一直保持初始输入的数值,永远不会等于initial,自然无法退出循环。

完全没必要改用for循环——for循环更适合提前知晓循环次数的场景,而猜数字的尝试次数是不确定的,while循环才是更贴合需求的选择。只要在循环内部补充更新guess的逻辑就能解决问题,修复后的代码如下:

initial = int(input("Enter the integer for the player to guess. "))

guess = int(input("Enter your guess. "))
tries = 0

while initial != guess:
    tries = tries + 1
    if initial < guess:
        print("Too high - try again: ")
    elif initial > guess:
        print("Too low - try again: ")
    # 关键:循环内重新获取用户输入,更新guess的值
    guess = int(input())

print("You guessed it in", tries,"tries.")

说明

  • 新增的guess = int(input())会在每次提示后获取用户的新猜测值,让guess能不断靠近目标数,直到相等时退出循环。
  • 如果希望第一次猜中时tries计数为1,可以把tries初始值设为1,同时调整循环逻辑(比如先判断再计数),不过当前代码的逻辑也能正常统计尝试次数(第一次猜不对才开始计数)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:25:15