所以我(非常糟糕)用python编写了一个绞刑游戏,我遇到了一些谷歌搜索似乎无法解决的问题。所以我有一个字符串(单词),每次用户猜对这个单词中的一个字母时,它都会显示字符串(known_word),该字符串显示一个空格列表,其中一些空格被他们在各自位置上猜对的字母取代。下面是一个例子:
word = 'coffee'
answer = 'e'
known_word = '****ee'
显示单词后,它们被循环输入另一个猜测。然而,当它们循环并猜测另一个字母(正确与否)时,它不会显示已经猜到的字母。正因为如此,我想知道是否有任何简单的方法来保存known_word的值,并将新的猜测添加到known_word中,以便显示到目前为止猜测的所有字母。
这样做的一种方法是将答案存储在一个列表中。然后您可以将word
中的每个字符与answer
列表中的值进行比较,以生成known_word
字符串。例如:
word = 'coffee'
answer = ['e', 'o']
known_word = ''.join(c if c in answer else '*' for c in word)
输出:
*o**ee
如果在收到每个答案时迭代地生成known_word,则可以使用下面的函数来更新
def update_known_word(word, answer, known_word):
for i in range(len(word)):
if(word[i] == answer):
known_word = known_word[:i] + word[i] + known_word[i+1:]
return known_word
流看起来像这样。一步一步地输入它只是为了演示,但你可以使用一个循环来代替。
word = 'coffee'
known_word = '******'
# Get answer from user
answer = 'e'
known_word = update_known_word(word, answer, known_word)
print(known_word)
# Get answer from user
answer = 'c'
known_word = update_known_word(word, answer, known_word)
print(known_word)
输出:
****ee
c***ee
带循环:
while(word_not_found):
# Get answer from user for this iteration
known_word = update_known_word(word, answer, known_word)
print(known_word)