Попробуйте, кроме блока, не проходящего после правильного ввода - PullRequest
0 голосов
/ 29 марта 2020

Я новичок в Python и кодировании в целом, и столкнулся с небольшой ошибкой в ​​моем коде. Всякий раз, когда я набираю неправильный ввод в моем блоке кода Try / Except, консоль печатает «Неверный ввод». Однако всякий раз, когда я набираю правильную фразу в консоли, она все равно говорит «Неверный ввод». Я посмотрел в Интернете, чтобы попытаться исправить эту проблему (обозначенную ##) с помощью этих строк кода, но я все еще получаю ту же проблему.

Например, я бы набрал «Mad Libs» с правильным регистром и все, и все еще получить "Неверный ввод" из моей команды! =. Может ли это быть легко исправлено путем форматирования другим способом? Это происходит со всеми 3 играми.

Как можно решить эту проблему? Заранее спасибо!

def game_selection(): ##
    pass ##


while True: ##
    try:
        playerChoice = input("So, which game would you like to play?: ")
        if playerChoice != "Mad Libs":
            print("Invalid input")
        elif playerChoice != "Guessing Game":
            print("Invalid input")
        elif playerChoice != "Language Maker":
            print("Invalid input")
        continue ##
    except:
        print("Invalid Input")


game_selection() ##

print("Got it! " + playerChoice + " it is!")
sleep(2)

if playerChoice == "Mad Libs":
    print("Initializing 'Mad Libs'.")
    sleep(.5)
    print("Welcome to MadLibs, " + playerName + "! There are a few simple rules to the game.")
    print("All you have to do is enter in a phrase or word that is requested of you.")
    playerReady = input("Ready to begin? Y/N")

Ответы [ 2 ]

1 голос
/ 29 марта 2020

Поскольку вы попросили его ответить на неверный ввод в любом случае в этом коде

While True: ##
    try:
        playerChoice = input("So, which game would you like to play?: ")
        if playerChoice != "Mad Libs":
            print("Invalid input")
        elif playerChoice != "Guessing Game":
            print("Invalid input")
        elif playerChoice != "Language Maker":
            print("Invalid input")
        continue ##
    except:
        print("Invalid Input")
0 голосов
/ 29 марта 2020

Дело в том, что этот код не будет работать, потому что, если я введу "Mad Libs" первым, если не пройдет, и он перейдет ко всем остальным elif. Таким образом, вы не можете принять этот подход. Я советую вам проверить, находится ли строка playerChoice в массиве

from time import sleep

while True:
   playerChoice = input("So, which game would you like to play?:")
   allowedGames = ["Mad Libs", "Guessing Game", "Language Maker"]
   if playerChoice not in allowedGames:
      print('Invalid input!')
   else:
      break

print("Got it! " + playerChoice + " it is!")
sleep(2)

if playerChoice == "Mad Libs":
    print("Initializing 'Mad Libs'.")
    sleep(.5)
    print("Welcome to MadLibs, " + playerName + "! There are a few simple rules to the game.")
    print("All you have to do is enter in a phrase or word that is requested of you.")
    playerReady = input("Ready to begin? Y/N")

...