Python 3 如何要求用户输入特定输入并拒绝无效输入



我有一个关于如何检查用户的输入并确保他们返回特定字符串的问题。目前,调用函数时将要求用户输入。但是,如果他们选择不属于函数的字符串,则 else 语句将执行并继续代码。我正在尝试弄清楚如何循环此函数,直到用户输入该函数正在寻找的字符串之一。谁能帮我解决这个问题?我是python的新手,希望得到任何帮助。

def dwarf_class_definer(dwarf_class):
if dwarf_class == "Thane":
print("'Ahhh Nobility'")
elif dwarf_class == "Mekanik":
print("'Interesting a Mechanic'")
elif dwarf_class == "Ancestrite":
print("'A spiritualist. I see...'")
elif dwarf_class == "Prisoner":
print("'Never met a gen-u-ine 'Last chancer.'")
elif dwarf_class == "Civilian":
print("'ehhh a civilian? Wut you doing here?'")
else:
print("You aren't choosing a valid class.")
dwarf_class = input("Which Class will you choose?: ")
dwarf_class_definer(dwarf_class)

while 循环将继续运行,直到你告诉它不要再这样做了。您可以看到,当提供预期值时,break 命令将终止 while 循环。与一堆 if 语句相比,字典还可以使您的代码更简洁、更易于维护。

dwarf_classes = {
"Thane": "'Ahhh Nobility'",
"Mekanik": "'Interesting a Mechanic'",
"Ancestrite": "'A spiritualist. I see...'",
"Prisoner": "'Never met a gen-u-ine 'Last chancer.'",
"Civilian": "'ehhh a civilian? Wut you doing here?'",
}
while True:
dwarf_class = input("Which Class will you choose?: ")
if dwarf_class in dwarf_classes.keys():
print(dwarf_classes[dwarf_class])
break
print("You aren't choosing a valid class.")

例:

$ python3 so.py 
Which Class will you choose?: Python!
You aren't choosing a valid class.
Which Class will you choose?: Prisoner
'Never met a gen-u-ine 'Last chancer.'

相关内容

最新更新