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

如何在while循环中设置条件输出?猜数字游戏代码异常排查

猜数字游戏代码错误分析与修复

错误点总结

  • 循环条件逻辑错误:你写的while user > secret_answer or user >= secret_answer等价于user >= secret_answer,只要用户猜的数字小于目标数,循环就直接终止,这就是程序两次输入后停止的核心原因。正确逻辑应该是只要没猜对就继续循环,即条件改为user != secret_answer(或者更直观用while True配合break)。
  • 猜测计数与成功提示逻辑失效:
    1. 第一次输入的猜测在循环外,没有被计入次数x;
    2. 若用户第一次就猜对,循环条件不满足,完全进不了循环体,成功提示的代码永远不会执行。
  • import语句位置不合理:from random import randint放在函数内部虽能运行,但常规写法是放在文件开头,更符合代码规范。

修正后的代码

from random import randint

def guessing_game():
    print('Guess a number between 1 and 100')
    secret_answer = randint(1, 100)
    guess_count = 0
    while True:
        user_guess = int(input(''))
        guess_count += 1
        if user_guess > secret_answer:
            print('Lower!')
        elif user_guess < secret_answer:
            print('Higher!')
        else:
            print(f'Impressive! You got the correct answer in {guess_count} guesses!')
            break

修正说明

  • 将随机数生成放在输入之前,逻辑更合理;
  • 使用while True实现无限循环,直到猜对后主动break,逻辑更清晰;
  • 每次循环内先获取用户输入并计数,确保所有猜测都被统计;
  • 用更清晰的变量名guess_count、user_guess提升可读性;
  • 采用f-string简化字符串拼接,代码更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 15:07:34