Я учусь в средней школе и в настоящее время учу себя Python. Я программирую Hangman, и пока все идет хорошо (пока он не очень организован), но у меня проблема. Я создал список слов, которые я буду использовать в игре, и заменил их звездочками, используя функцию диапазона. Вот код для этого:
words = ['utopia', 'prosecute', 'delirious', 'superficial', 'fowl', 'abhorrent', 'divergent',
'noxious', 'scarce','lavish', 'hinder', 'onerous', 'colossal', 'infringe']
picked_words = random.choice(words)
for i in range(len(picked_words)):
print(picked_words.replace(picked_words,'*'), end = '')
Я нахожусь в точке, где я угадываю буквы, и мне нужно медленно раскрывать положение определенных букв. Я пытался найти определенные функции (я даже думал, что функция find () будет работать, поскольку она печатает расположение буквы в строке, но это не так), и я в растерянности. Особенно для слов с кратными одинаковыми буквами, таких как «обременительный» и «нарушать». Я напишу код, который у меня есть для этого раздела:
def right_letter(correct):
if correct == True:
print("There are {} {}'s.".format(number_of_char, guess))
for x in range(len(picked_words)):
print(picked_words.replace(picked_words,guess, #find way to fill in specific letters),end = '')
Я понятия не имею, какие части кода необходимы для получения ответа, но мой код действительно неорганизован, потому что я не знаю правильного техники пока нет. Часть, которая говорит для x в диапазоне (len (selected_words)) ... ... 1008 *, где у меня проблемы. Остальная часть кода работала нормально, прежде чем я добавил оператор печати под ним. В основном я спрашиваю, как изменить определенный символ или указать c символов и поместить их на место. Например, если рандомизированное слово было «нарушением» и первое предположение было «i», как я могу go из ******** в i *** i ***?
Кроме того, на случай, если кому-то будет интересно, что я изначально думал, что решение было ...
picked_words[(picked_words.find(guess))]
Я думал, что оно упростится и станет pick_words [index]