本文讲解如何使用 python 的 `enumerate()` 函数,高效、准确地将隐藏字符串中所有对应位置的 `"_"` 替换为玩家输入的正确字母,避免仅替换首个匹配项的常见错误。
在 Hangman 游戏中,一个核心逻辑是:当玩家猜中某个字母时,需将答案单词中所有该字母出现的位置同步显示出来。初学者常误用 str.find()(如 randomWord

更简洁、更 Pythonic 的解法是结合 enumerate() 遍历单词:它自动提供每个字符的索引和值,让我们能逐位比对并精准更新。以下是推荐实现:
# 示例:初始化与用户输入
randomWord = "hippopotamus"
guess = list("_" * len(randomWord)) # ['_', '_', '_', ...] —— 可变列表便于修改
userInput = "p"
# 核心逻辑:遍历每个位置,匹配即更新
for i, char in enumerate(randomWord):
if char == userInput:
guess[i] = userInput
# 恢复为字符串并输出
result = "".join(guess)
print(result) # 输出: "__pp_p______"✅ 关键优势说明:
⚠️ 注意事项:
掌握 enumerate() 不仅解决 Hangman 的多位置替换问题,更是 Python 迭代思维的重要实践——告别手动维护索引,让代码更清晰、健壮、可维护。