您最好使用列表,因为字符串是不可变的
>>> blanks = list('_______')>>> answer = 'hangman'>>> guess = 'g'>>> blanks[answer.index(guess)] = guess>>> blanks['_', '_', '_', 'g', '_', '_', '_']因此,这保持可
blanks变性,因此您可以随意替换元素。然后,当您想以字符串形式显示给用户时
>>> ''.join(blanks)'___g___'
列表理解可以处理重复的字母
>>> [guess if letter == guess else blank for blank, letter in zip(blanks, answer)]['_', 'a', '_', '_', '_', 'a', '_']
编辑
请参阅以下快速演示,请注意您应添加对错误猜测的处理
answer = 'hangman'blanks = list('_'*len(answer))for guess in set('hangman'): blanks = [guess if letter == guess else blank for blank, letter in zip(blanks, answer)] print(''.join(blanks))输出量
h______h__g___h__gm__ha_gma_hangman



