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

为何Python的while循环提前终止?猜数字游戏未输出Bingo问题

问题原因分析

你的代码逻辑存在两个核心问题,导致永远不会输出"Bingo!":

  • 首次猜对直接跳过循环:如果用户第一次输入的数字就等于随机数,while y != random_number的条件不成立,循环体完全不会执行,自然不会触发打印。
  • 循环内的else分支永远无法触发:当用户在循环中输入正确数字时,y等于random_number,此时while的条件不再满足,循环直接终止,根本不会进入循环体执行那个else分支。
修复方案

可以调整循环结构,用while True构建无限循环,在内部判断是否猜对,猜对时打印并退出循环,逻辑更清晰:

import random
x = 100
random_number = random.randint(1, x)
while True:
    y = int(input('what do you think is the number?! '))
    if y > random_number:
        print('Too high')
    elif y < random_number:
        print('Too low')
    else:
        print('Bingo!')
        break  # 猜对后退出循环

也可以保留原循环结构,在循环结束后统一打印(循环结束意味着y已等于随机数):

import random
x = 100
random_number = random.randint(1, x)
y = int(input('what do you think is the number?! '))
while y != random_number:
    if y > random_number:
        print('Too high')
    elif y < random_number:
        print('Too low')
    y = int(input('what do you think is the number?! '))
print('Bingo!')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 19:04:50