Основная проблема кода Палача с изменением слова после правильного ответа [закрыто]

Вы переписываете список с каждой итерацией. Вместо этого вы можете проверить, существует ли ключ в dict, если не создать новый ключевой список

Ex:

image_dict={}
for index, item in enumerate(data.ImageID):
    if item not in image_dict:
        image_dict[item] = []
    image_dict[item].append((data.XMax[index], data.XMin[index], data.YMax[index], data.YMin[index]))
-2
задан Michalis Papapetros 19 January 2019 в 00:01
поделиться

1 ответ

def hangman():
    j=0
    word='weekend'
    new_word=len(word)*'_'
    while j<20:
        letter=input('Give a letter: ')
        print("letter =" + letter)
        for i in range(len(word)):
            if word[i]==letter and new_word[i]=='_':
                new_word = list(new_word)
                new_word[i] = letter
                new_word = ''.join(new_word)
        if new_word.replace(' ','')==word:
            print('You won!')
            break    
        j+=1
        print(new_word)

hangman()

Этот код делает то, что вы хотите сделать. Ошибки в исходном коде:

`new_word=len(word)*'_ '`

(обратите внимание на пробел в конце. Это испортило индексацию)

new_word=new_word.replace(new_word[i],letter)

Это привело к замене new_word на letter! Таким образом, стало wwwwwww (если кто-то вошел в w)

        new_word = list(new_word)
        new_word[i] = letter
        new_word = ''.join(new_word)

Простой способ понять символ по определенному индексу - это преобразовать его в список, а затем заменить на letter в этот индекс. Мы конвертируем список обратно в строку позже.

0
ответ дан Anon 19 January 2019 в 00:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: