Как сделать замену в строке

Пишу игру "виселица" на Python в Pydroid 3. Правила такие: один игрок загадывает слово, передает телефон другому игроку и он пытается отгадать слово по буквам (полностью правила можете почитать в Википедии). Вот мой код:

from os import system


pics = [
'''
|------
|/    |
|
|
|
=======
''',
'''
|------
|/    |
|     Ô
|
|
========
''',
'''
|------
|/    |
|     Ô
|     |
|
========
''',
'''
|------
|/    |
|     Ô
|    /|
|
========
''',
'''
|------
|/    |
|     Ô
|    /|\\
|
========
''',
'''
|------
|/    |
|     Ô
|    /|\\
|    /
========
''',
'''
|------
|/    |
|     Ô
|    /|\\
|    / \\
========
'''
] # это картинки виселицы

word = input('Слово: ') # загаданное слово
word_len = len(word) # кол-во букв в слове
word_crypt = '_ ' * word_len # "зашифрованное" слово (знаки _ вместо букв)

letter_list = [] # список уже использованных букв
wrong_attempts = 0 # число неверных попыток

system('clear') # очистка экрана

while '_' in word_crypt:
    print(pics[wrong_attempts])
    print()
    print(', '.join(letter_list))
    print()
    print(word_crypt)
    print()
    
    letter = input('Буква: ') # буква для отгадывания
    letter_list.append(letter) # буква заносится в список
    letter_pos = word.find(letter) # позиция буквы в слове
    
    if letter_pos == -1:
        wrong_attempts += 1 # если не угадал букву
    else:
        # вот тут я не знаю как написать
    
    if wrong_attempts >= 6:
        system('clear')
        print(pics[6])
        print()
        print('ВЫ ПРОИГРАЛИ!') # проигрыш
        break
    elif not '_' in word_crypt:
        system('clear')
        print('ВЫ ВЫИГРАЛИ!') # выигрыш
        break
    else:
        system('clear')

input() # приостановка программы

Проблемы:

  1. Нельзя загадать слово, где хотя бы одна буква повторяется (из-за word.find(letter)).
  2. Я не знаю как написать код чтобы он заменял _ на letter в word_crypt. Пробовал так:
word_crypt.replace('_', letter)

Но не работает (Этот код должен быть там где в else у меня комментарий). Помогите, пожалуйста, исправить мой код!


Ответы (1 шт):

Автор решения: Пушистик

Еще раз всем спасибо большое, все комментарии помогли, показываю свой рабочий код:

from os import system


pics = [
'''
|------
|/    |
|
|
|
=======
''',
'''
|------
|/    |
|     Ô
|
|
========
''',
'''
|------
|/    |
|     Ô
|     |
|
========
''',
'''
|------
|/    |
|     Ô
|    /|
|
========
''',
'''
|------
|/    |
|     Ô
|    /|\\
|
========
''',
'''
|------
|/    |
|     Ô
|    /|\\
|    /
========
''',
'''
|------
|/    |
|     Ô
|    /|\\
|    / \\
========
'''
]

word = input('Слово: ')
word_len = len(word)
word_crypt = '_' * word_len
word_crypt_list = list(word_crypt)

letter_list = []
wrong_attempts = 0

system('clear')

while '_' in word_crypt_list:
    print(pics[wrong_attempts])
    print()
    print(', '.join(letter_list))
    print()
    print(' '.join(word_crypt_list))
    print()
    
    letter = input('Буква: ')
    letter_list.append(letter)
    attempts = 0
    for i in range(word_len):
        if word[i] == letter:
            word_crypt_list[i] = letter
            attempts += 1
        else:
            continue
    
    if attempts == 0:
        wrong_attempts += 1
        system('clear')
    else:
        system('clear')
    
    if wrong_attempts >= 6:
        system('clear')
        print(pics[6])
        print()
        print('ВЫ ПРОИГРАЛИ!')
        break
    elif not '_' in word_crypt_list:
        system('clear')
        print('ВЫ ВЫИГРАЛИ!')
        break
    else:
        system('clear')

input()

→ Ссылка