你能从循环中保存字符串,然后将它们与其他字符串组合吗?



所以我(非常糟糕)用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)

相关内容

最新更新