Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 19, 2019 12:06:25

the_hari
Зарегистрирован: 2019-06-19
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Программа пропускает часть кода и завершает программу.

Всем привет. Начал изучать Python 3 (версия 3.7). Изучаю по книге Свейгарт Э. 4 издание. Там есть пример создания игры Виселица. Проблем в том, что когда программа запрашивает ввод буквы от пользователя, либо завершает программу, если буква не правильная, либо если хотя бы 1 буква слова угадана, выводит сообщение, что вы выиграли, хотите ли повторить? Перепроверил код несколько раз. Все сходится. Уже переписал прям с книги. Запускал Debugger. При выполнении, программа пропускает блок, который должен выводит не правильную букву, и просить ввести другую. Прикладываю данный код. Подскажите, куда копать? Где ошибка?

Прикреплённый файлы:
attachment python scrypt.txt (3,1 KБ)

Офлайн

#2 Июнь 19, 2019 15:25:27

Egorro13
Зарегистрирован: 2019-04-16
Сообщения: 105
Репутация: +  5  -
Профиль  

Программа пропускает часть кода и завершает программу.

the_hari
Прикрепленный код просто падает после первого ввода с ошибкой:

NameError: name ‘alreadyGuessed’ is not defined
alredyGuessed != alreadyGuessed
Если исправить, вроде почти работает, хотя еще и отступы понаставлены местами неправильно, например:
         foundAllLetters = True
        for i in range(len(secretWord)):
            if secretWord[i] not in correctLetters:
                foundAllLetters = False
                break
            if foundAllLetters:
                print('Да! Секретное слово - "' + secretWord + '"! Вы угадали!')
                gameIsDone = True
Если первая буква найдена, выводится ‘Да! Секретное слово - “’ + secretWord + ‘”! Вы угадали!’, хотя вроде как эта проверка должна выполняться не при каждом проходе цикла, а после него. И с завершением игры, на глаз, тот же косяк - она просто никогда не завершается…

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version