Try Except Block 正确输入后不通过
Try Except Block not passing after correct input
我是 Python 和一般编码的新手,并且 运行 我的代码中有点错误。每当我在我的 Try/Except 代码块中输入错误的输入时,控制台打印 "Invalid input" 但是,每当我在控制台中输入正确的短语时,它仍然显示 "Invalid input"。我在网上查看试图用这些代码行来解决这个问题(用##表示),但我仍然遇到同样的问题。
例如,我会输入大小写正确的 "Mad Libs",并且仍然会从我的 != 命令中得到 "Invalid input"。这可以通过以不同的方式格式化来轻松解决吗?所有 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")
因为你要求它在这段代码中回答无效输入
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")
问题是,此代码将不起作用,因为如果我输入 "Mad Libs",第一个 if 将不会通过,因此它将传递给所有其他 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")
我是 Python 和一般编码的新手,并且 运行 我的代码中有点错误。每当我在我的 Try/Except 代码块中输入错误的输入时,控制台打印 "Invalid input" 但是,每当我在控制台中输入正确的短语时,它仍然显示 "Invalid input"。我在网上查看试图用这些代码行来解决这个问题(用##表示),但我仍然遇到同样的问题。
例如,我会输入大小写正确的 "Mad Libs",并且仍然会从我的 != 命令中得到 "Invalid input"。这可以通过以不同的方式格式化来轻松解决吗?所有 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")
因为你要求它在这段代码中回答无效输入
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")
问题是,此代码将不起作用,因为如果我输入 "Mad Libs",第一个 if 将不会通过,因此它将传递给所有其他 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")