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

Python while循环重复询问问题:playAgain函数被两次调用

问题原理分析:playAgain函数重复询问的原因

你的问题核心是同一个函数被连续调用了两次,导致出现两次输入询问:

  • 当用户猜对数字时,首先执行win()函数,而win()内部已经调用了playAgain()——这时候会第一次弹出输入框让你选择,但这次调用的返回值没有被任何变量接收,相当于白问了一次,你输入的内容根本没影响程序逻辑。
  • 紧接着,主循环里的guessed = playAgain()又会第二次调用这个函数,这次的返回值才会赋值给guessed,决定是否继续游戏,所以你会看到两次询问,只有第二次的输入能生效。

修复方案

方案1:移除win()里的playAgain调用

保留主循环中的调用逻辑,修改win函数:

def win():
    print("\nYou got it!\n")
    # 删除原有的playAgain()调用

方案2:让win()负责返回playAgain的结果

把询问逻辑统一放在win()里,主循环直接接收结果:
修改win函数:

def win():
    print("\nYou got it!\n")
    return playAgain()  # 返回playAgain的结果

然后修改主循环中的对应代码:

if userGuess == compNum:
    guessed = win()  # 直接接收win返回的是否结束游戏的结果
    if guessed == False:
        compNum = random.randint(1,100)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 04:45:07