您最好使用列表,因为字符串是不可变的
>>> 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