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

Python初学者编写Hangman游戏时重复字母仅替换单个问题求助

Hangman猜词游戏重复字母替换问题解决方案

问题根因

你代码的核心问题出在list.index()方法的特性上:该方法只会返回列表中第一个匹配元素的索引,哪怕单词中存在多个重复字母,循环调用也只会拿到第一个出现的位置,因此只能替换一个空位。

修复思路

不需要通过index()计算位置,直接遍历单词的索引+字母组合即可:

  • 使用Python内置的enumerate()函数可以同时拿到每个字母的索引和对应值
  • 遍历过程中如果当前字母和用户输入的字母一致,就直接替换空白列表对应索引位置的值

核心代码修改

将你代码中猜对字母后的循环段:

for element in selected_word_lst:
    letter_selection_pos = selected_word_lst.index(letter_selection)
    blank_lst[letter_selection_pos] = letter_selection

替换为以下代码即可:

# 遍历单词每个位置的索引和字母
for idx, current_letter in enumerate(selected_word_lst):
    # 匹配到用户选的字母就替换对应位置的空位
    if current_letter == letter_selection:
        blank_lst[idx] = letter_selection

额外优化建议:可以先对用户输入做小写统一处理,避免大小写不匹配的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 15:54:04