Я хочу создать список, размер которого равен «word_len», а символ по умолчанию — «_», который позже можно заменить правильным предположением пользователя. Как мне это сделать? Мой текущий код: -
import random
word_list = ["aardvark", "baboon", "camel"]
chosen_word = random.choice(word_list)
word_len = len(chosen_word)
guess_letter = input("Guess a letter: ").lower()
final_list = []
for character in chosen_word:
if character == guess_letter:
print("Right")
else:
print("Wrong")
_
- это проблема времени отображения. Вам не нужно сохранять отображаемые слова с их _
, вы можете просто генерировать их во время отображения.
Для этого вам нужно отслеживать буквы, которые были guessed
. Затем вы можете проверить каждый символ каждого слова в word_list
.
guessed = "abcd"
word_list = [ "cat", "dog", "cab" ]
print( [ ''.join([ l if l in guessed else '_' for l in word]) for word in word_list ] )
['ca_', 'd__', 'cab']
Если вложенные списки поначалу вызывают у вас косоглазие, вот эквивалентная длинная форма:
display_words = []
for word in word_list:
new_word = ""
for l in word:
if l in guessed:
new_word = new_word + l
else :
new_word = new_word + '_'
display_words.append(new_word)
print(display_words)
Если вы следите за оставшимися буквами в словаре
remaining = dict.fromkeys(chosen_word,"_")
, вы можете удалить угаданные буквы по ходу работы с (remaining.pop(guess_letter,"")
и распечатать результат с помощьюprint(*(remaining.get(c,c) for c in chosen_word))
. Когдаremaining
пусто, слово найдено.