Форум сайта python.su
0
Всем доброго дня.
Столкнулся вот с такой вот ошибкой, комрады помогите разобраться в чем тут дело.
Google четкого ответа не дал, я новенький это понятное дело, но меня эта ошибка очень озадачила.
def displayBoard(missedLetters, correctLetters, secretWord): print(HANGMAN_PICS[len(misssedLetters)]) print() print('Missed Letters:', end=' ') for letter in missedLetters: print(letter, end=' ') print()
Отредактировано Galactus111 (Фев. 16, 2021 15:18:18)
Прикреплённый файлы:
Снимок экрана 2021-02-16 в 15.11.07.png (19,5 KБ)
Офлайн
124
Galactus111это не о чем не говорит отправляйте свой код полностью,только правильно его оформляйте в сообщении,в
missedLetters подчеркивает красным, файл с ошибкой есть во вложении.
Офлайн
0
import random HANGMAN_PICS = [''' +---+ | | | ===''', ''' +---+ | | | ===''', ''' +---+ 0 | | | | ===''', ''' +---+ 0 | /| | | ===''', ''' +---+ 0 | /|\ | | ===''', ''' +---+ 0 | /|\ | / | ===''', ''' +---+ 0 | /|\ | / \ | ==='''] words = '''ant baboon badger bat bear beaver camel cat clam cobra cougar coyote crow deer dog donkey duck eagle ferret fox frog goat goose hawk lion lizard llama mole monkey moose mouse mule newt otter owl panda parrot pigeon python rabbit ram rat raven rhino salmon seal shark sheep skunk sloth snake spider stork swan tiger toad trout turkey turtle weasel whale wolf wombat zebra'''.split()' def getRandomWord(wordList): # This function returns a random string from the passed list of strings. wordIndex = random.randint(0, len(wordLIst) - 1) return wordList(wordIndex) def displayBoard(missedLetters, correctLetters, secretWord): print(HANGMAN_PICS[len(misssedLetters)]) print() print('Missed Letters:', end=' ') for letter in missedLetters: print(letter, end=' ') print() blanks = '_' * len secretWord) for i in range(len(secretWord)): #Replace blanks with correctly guesses letters. if secretWord[i] in correctLetters: blanks = blanks[i] + secretWord[i] + blanks[i+1:] for letter in blanks: # Show the secret word with correctly guesed letters. if secretword[i] in correctLetters: blanks = blanks[i] + secretWord[i] + blanks[i+1:] for letters in blanks: # Show the secret word with spaces in between each letter. print(letter, end=' ') print() def getGuess(alresdyGuessed): # Returns the letter the player entered. This function makes sure the player entered a single letter and not something else. while True: print('Guess a letter.') guess = input() guess = guess.lower() if len(guess) != 1: print('Please enter a single letter.') elif guess in alreadyGuessed: print('you have already guessed that letter, choose again.') elif guess not in 'abcdefghijklmnopqrstuvwxyz': print('Please enter a LETTER.') else: return guess def playAgain*(): # This function returns True if the player wants to play again; otherwise, it returns False. print('Do you want to play again? (yes or no)') return input().lower().startswitch('y') print('H A N G M A N') missedLetters = '' correctLetters = '' secretword = getRandomWord(words) gameisdone = False while True: displayBoard(missedLetters, correctLetters, secretWord) #Let the player enter a letter. guess = getGuess(missedLetters + correctLetters) if guess in secretWord: correctLetters = correctLetters + guess #Check if the player has won. foundAllLettres = True for i in range(len(secretword)): if secretword[i] not in correctLetters: foundAllLetters = False break if foundAlllLetters: print('Yes! the secret word is "' + secretWord + '"! You have won!') gameIsDone = True else: missedLetters = missedLetters + guess #Check if player has guessed too many times and lost. if len(missedLetters) == len(HANGMAN_PICS) - 1: displayBoard(missedLetters, correctLetters, secretword) print('You have run out of guesses!\nAfter ' + str(len(missedLetters)) + ' missed guesses and ' + str(len(correctLetters)) + ' correct guesses, the word was "' + secretWord +'"') gameIsDone = True # Ask the player if they want to play again (but only if the game is done. if gameIsDone: if playAgain(): missedLatters = '' correctLetters = '' gameIsDone = False SecretWord = getRandomWord(words) else: break
Отредактировано Galactus111 (Фев. 16, 2021 16:42:02)
Офлайн
253
Управляющие конструкции должны кончаться двоеточием
Офлайн
0
doza_and
Я знаю, ставил, всё равно та же ошибка(
Отредактировано Galactus111 (Фев. 17, 2021 12:30:05)
Офлайн
568
Galactus111
Ошибка, это когда вы выполняете код и получаете исключение. То что вам какая-то программа подсвечивает красным какие-то слова - не значит ничего, выкиньте свою программу на ту помойку на которой вы её нашли и не морочьте людям голову. Могу предположить, что вам подсвечивают нарушение правил PEP-8. Это никакая не ошибка. С чего вы решили интерпретировать подсказки от ИДЕ как ошибки? Ваша программа работает? Если работает - успокойтесь, ошибок нет. Если не работает, то покажите сообщение, которое вам выведет интерпретатор.
Офлайн
0
FishHook
Я обсолютно никому не морочу голову, я ко всем отношусь с уважением, я просто не могу понять в чём проблема.
это всё с учебника.
Ситуация такая, я нажимаю ‘run module’ и мне выдаёт вот что ‘EOL while scanning string literal’
и программа не работает, лишь подсвечивает данную строку, а интерпретатор стоит родной.
По поводу pep-8 я тоже так думаю, только вот я дня 2 уже ищу в какой строке что-то не так.
Отредактировано Galactus111 (Фев. 17, 2021 17:03:48)
Офлайн
568
Galactus111Запустите свою программу как положено - через эмулятор терминала вашей операционной системы. В стеке знаний относящихся к пииону нет никаких ‘run module’. Вы используете для своих экспериментов какую-то убогую программу, что это за программа вы не сказали. Просто вы где-то что-то нажимаете. Блин, не используйте эту программу. Пишите свой код в любом текстовом редакторе на выбор, в Блокноте например и запускайте программы из коммандной строки. С этого, давайте и начнем, вернее продолжим. Я спросил, ваша программа работает или нет (не нажимая run module, а выполняя программу)?
Ситуация такая, я нажимаю ‘run module’
Офлайн
0
FishHook
FishHookЗапустил через командную строку вот что в итоге вышло.
ваша программа работает или нет (не нажимая run module, а выполняя программу)?


Отредактировано Galactus111 (Фев. 17, 2021 18:08:09)
Офлайн
1
missedLetters (2 s) и misssedLetters (3s) это разные идентификаторы
Офлайн