@Serjdragonknight
Студент.Изучаю Python.

Python как решить ошибку NameError: name 'getGuess' is not defined?

import random
HANGMAN_PICS = ['''
    +---+
        |
        |
        |
       ===''','''
    +---+
        |
         |
         |
        ===''','''
    +---+
    0   |
    |   |
        |
       ===''','''
    +---+
    0   |
   /|   |
        |
       ===''','''
    +---+
    0   |
   /|\  |
        |
       ===''','''
    +---+
    0   |
   /|\  |
   /    |
       ===''','''
    +---+
    0   |
   /|\  |
   / \  |
       ===''']
words = 'аист акула бабуин баран барсук бобр бык верблюд волк воробей ворон выдра голубь гусь жаба зебра змея индюк кит кобра коза козел койот корова кошка кролик крыса курица лама ласка лебедь лев лиса лосось лягушка медведь моллюск моль мул муравей мышь норка носорог обезьяна овца окунь олень орел осел панда паук питон попугай пума семга скунс собака сова тигр тритон тюлень утка форель хорек черепаха ястреб ящерица'.split()

def getRandomWord(wordList):
    #Эта функция возвращает случайную строку из переданного списка
    wordIndex = random.randint(0,len(wordList)-1)
    return wordList[wordIndex]

def displayBoard(missedLetters, correctLetters, secretWord):
    print(HANGMAN_PICS[len(missedLetters)])
    print()

    print('Ошибочные буквы:', end=' ')
    for letter in missedLetters:
        print(letter, end=' ')
    print()

    blanks = '_'* len(secretWord)

    for i in range(len(secretWord)): # заменяет пропуски отгаданным буквами
        if secretWord[i] in correctLetters:
            blanks = blanks[:i]+secretWord[i]+blanks[i+1:]

            for  letter in blanks: #Показывает секретное слово с проебалми между буквами
                print(letter, end=' ')
                print()

    def getGuess(alreadyguessed):
        #Возвращает букву, введенную игроком. Эта функция проверяет,что игрок ввел только одну букву и ничего больше.
        while True:
            print('Введите букву.')
            quess=input()
            guess = guess.lower()
            if len(guess) !=1:
                print('Пожалуйста, введите одну букву.')
            elif guess in alreadyGuessed:
                print('Вы уже называли эту букву. Назовите другую.')
            elif guess not in 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя':
                print('Пожалуйста, введите БУКВУ.')
            else:
                return guess

def playAgain():
    #Эта функция возвращает значение True, если игрок хочет сыграть заного; в противном случае возвращает False.
    print('Хотите сыграть еще?(да или нет)')
    return input().lower().startswith('д')


print('В И С Е Л И Ц А')
missedLetters =''
correctLetters =''
secretWord =getRandomWord(words)
gameIsDone = False

while True:
    displayBoard(missedLetters, correctLetters, secretWord)

    #Позволяет игроку ввести букву
    guess = getGuess(missedLetters + correctLetters)

    if guess in secretWord:
        correctLetters = correctLetters + guess

        #Проверяет ,выиграл ли игрок.
        foundAllLetters = True
        for i in range(len(secretWord)):
            if secretWord[i] not in correctLetters:
                foundAllLetters=False
                break
            if foundAllLetters:
                print('ДА!Секретное слово - "' + secretWord + '"!Вы угадали!')
                gameIsDone = True
            else:
                missedLetters = missedLetters + guess

                #Проверяет, превысил ли игрок лимит попыток и проиграл.
                if len(missedLetters) == len(HANGMAN_PICS) -1:
                    displayBoard(missedLetters, correctLetters, secretWord)
    print('Вы исчерпали все попытки!\nНе угадано букв:'+str(len(missedLetters))+'и угадано букв:'+str(len(correctLetters))+'.Было загадано слово"'+secretWord+'".')
    gameIsDone = True

        #Запрашивает, хочет ли игрок сыграть заного(только если игра завершена).
if gameIsDone:
            if playAgain():
                missedLetters =''
                correctLetters =''
                gameIsDone = False
                secretWord = getRandomWord(words)
            import sys
            sys.exit(0)


line 95, in
guess = getGuess (missedLetters + correctLetters)
NameError: name 'getGuess' is not defined
Помогите решить ошибку
Пишу в IDLE.

#Позволяет игроку ввести букву
guess = getGuess (missedLetters + correctLetters) строка ошибки
  • Вопрос задан
  • 553 просмотра
Решения вопроса 1
ptitca_zu
@ptitca_zu
Programmer. Reader. Introvert
Дело в пробелах. Нужно начиная с
print('Вы исчерпали все попытки!\nНе угадано букв:'+str(len(missedLetters))+'и угадано букв:'+str(len(correctLetters))+'.Было загадано слово"'+secretWord+'".')
подвинуть вправо весь код
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dkopitsa
разработчик-интроверт
для заверщения программы есть стандартные средства
import sys
sys.exit(0)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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