Python列表元素替换:猜字游戏(Hangman)中自动替换下划线为正确字母的实现问题
解决Hangman游戏中猜对字母自动替换对应下划线的问题
嘿,我完全懂你现在的困扰!你当前的代码只能固定修改display列表索引为2的位置,但其实只需要在遍历目标单词的时候同时跟踪每个字母的索引位置,就能轻松实现自动替换所有匹配的下划线啦。
核心思路:用enumerate()跟踪索引
Python的enumerate()函数可以帮你在遍历chosen_word时,同时获取每个字母的索引和对应的字母本身。这样当猜中的字母出现时,你就能直接用这个索引去修改display列表里对应的下划线位置。
修改后的代码片段
for index, letter in enumerate(chosen_word): if letter == guess: display[index] = letter print(display)
简单解释一下
enumerate(chosen_word)会把chosen_word拆成一个个包含索引和字母的元组,比如如果chosen_word是"banana",遍历的时候会依次得到(0, 'b')、(1, 'a')、(2, 'n')……- 每次循环判断当前字母是否等于玩家的猜测
guess,如果匹配,就把display列表中对应index位置的下划线替换成这个字母。 - 这样不管目标字母在单词里出现多少次,所有对应的位置都会被正确替换,而不是只改固定的第3个元素啦!
举个小例子:如果chosen_word是"apple",初始display是["_", "_", "_", "_", "_"],当玩家猜"p"时,代码会找到索引1和2的位置,把display改成["_", "p", "p", "_", "_"],完全符合游戏逻辑~
内容的提问来源于stack exchange,提问作者ang3lmira
相关产品推荐
相关产品推荐

