Hangman游戏猜字母功能异常,如何实现精准位置替换?
解决Hangman游戏中精准替换字母位置的问题
你的核心问题在于误用了字符串的replace()方法——这个方法会替换所有匹配的字符,而非指定位置的单个字符,再加上Python字符串是不可变类型,直接替换会导致全局修改。
修改思路
- 初始化隐藏单词时,直接生成与目标单词长度一致的下划线列表(列表是可变类型,方便修改指定位置)
- 匹配到用户输入的字母时,直接修改列表对应索引的元素,而非调用字符串替换方法
修改后的完整代码
word = "hello" # 初始化下划线列表,长度和目标单词一致 hiddenWord = ["_"] * len(word) userInput = input("Enter letter: ") # 遍历目标单词的每个索引 for i in range(len(word)): if word[i] == userInput: # 精准修改对应位置的元素 hiddenWord[i] = userInput # 将列表转为字符串后输出 print("".join(hiddenWord))
测试效果
输入l时,输出会是__ll_,符合预期;后续输入h会变成h_ll_,可以逐步完成单词拼接。
内容的提问来源于stack exchange,提问作者Zach Taylor
相关产品推荐
相关产品推荐

