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

如何在循环的if语句中保存变量?Hangman猜词游戏代码问题

Hangman猜词游戏猜对内容无法累加问题修复

错误原因

你每次替换猜词内容时,都基于初始空白模板guess_word操作,没有复用之前轮次已经猜对填充的结果,因此每一轮的新猜对字母都会覆盖之前的填充内容,导致猜对内容无法累加。

修复方法

将替换操作的数据源从初始的guess_word改为存储了历史猜对结果的变量a即可,修正后的代码如下:

word = 'hello'
guessed = False
guess_word = secret_word(word)
a = guess_word  # 直接使用生成的空白模板,兼容不同长度的目标单词

while not guessed:
    letter = ask_letter_from_user()

    if is_the_letter_in_the_word(word, letter):
        locatie_letter_in_woord = location_of_letter_in_word(word, letter)
        # 替换源改为已保存历史猜对结果的a,而非初始空白模板
        a = replace(a, locatie_letter_in_woord, letter)
        print(a)
    
    # 补充猜词完成判断逻辑,避免死循环
    if '_' not in a:
        guessed = True

额外优化建议

  • 不需要手动写死初始填充串a = '____',直接使用secret_word返回的空白模板即可适配任意长度的目标单词
  • 原代码未设置循环终止条件,补充判断猜词结果无下划线时终止循环,避免程序无限运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:36:07