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

Python游戏输入YES时循环无法正常重启的问题排查

猜单词游戏重启问题的原因与修复方案

问题根源

你的代码存在三个核心问题,导致无法正常重启游戏:

  • 初始游戏流程在循环外:游戏的开场提示、猜测次数初始化、首次猜测输入都写在了外层循环外面,只有第一次运行游戏时会执行,后续重启直接跳过这部分。
  • guess变量未重置:第一次猜对后,guess的值已经是"pen",再次进入游戏时,直接判定猜测正确,不会重新让用户输入新的答案。
  • guesses计数未重置:每次重启游戏时,猜测次数没有归零,会延续上一轮的计数,导致次数统计错误。

修复后的代码

keep_playing = "yes"

while keep_playing == "yes":
    # 把游戏初始化逻辑放到循环内,每次重启都重新执行
    print("I can write and help you to study. What am I?")
    print(" ")

    guesses = 1
    guess = input("What is your guess? ")
    secret_word = "pen"

    while guess.lower() != secret_word:
        print("Sorry, that's the wrong answer.")
        guess = input("What is your guess?: ")                
        guesses += 1
    
    print("Congratulations! You guessed it")
    print(f"It took you {guesses} guesses")
    
    keep_playing = input("Would you like to play again (yes/no)? ").lower()

print("See you next time! Thanks for playing.")

修复说明

  1. 将游戏的开场提示、guesses初始化、首次guess输入全部移到while keep_playing == "yes"循环内部,确保每次重启游戏都会重新触发这些步骤。
  2. 对keep_playing的输入做了.lower()处理,避免用户输入大写"YES"导致循环终止的问题。
  3. 简化了猜对后的判断逻辑,因为内层循环结束时必然是猜对了,不需要额外的if判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:35:56