我已经创建了一个简单的菜单,用户可以在其中输入怪物选择或完全相同的单词。如果接收到错误的输入,我希望程序循环返回。当我输入第一个错误答案时,我会得到提示重新输入的提示,但不会随后打印出该语句。因此,它不是正确的循环。
def welcomeScreen():
print("Welcome to the Creature computation tool!\n\n")
menu = str("MENU")
print(menu.center(40, '*'))
def monsterMenu(monster):
print("{0} - Compute probability of {0}".format(monster))
def quitMenu():
endMenu = str("Quit")
print("{0} - Quit the tool".format(endMenu))
def chooseMontser():
pickedMonster = input("Please Enter your choice of Monster: ")
if pickedMonster == "Yeti":
print ("You have picked", pickedMonster)
elif pickedMonster == "Dragon":
print ("You have picked", pickedMonster)
elif pickedMonster == "Hydra":
print ("You have picked", pickedMonster)
elif pickedMonster == "Quit":
print ("Thanks for using Creature Menu!")
else:
print("Please choose a valid option")
chooseMonster()
def creatureMenu():
welcomeScreen()
monsterMenu("Yeti")
monsterMenu("Dragon")
monsterMenu("Hydra")
quitMenu()
chooseMontser()
creatureMenu()
请勿从内部调用函数,而应使用循环:
def chooseMontser():
# loop until a valid input was given
while True:
pickedMonster = input("Please Enter your choice of Monster: ")
if pickedMonster in ("Yeti","Dragon", "Hydra", "Quit"):
break
print("Please choose a valid option")
if pickedMonster == "Yeti":
print ("You have picked", pickedMonster)
elif pickedMonster == "Dragon":
print ("You have picked", pickedMonster)
elif pickedMonster == "Hydra":
print ("You have picked", pickedMonster)
elif pickedMonster == "Quit":
print ("Thanks for using Creature Menu!")