如何检查用户输入(Python)
我已经看到了很多关于这个问题的答案,但我正在寻找一些非常具体的答案。我需要完成的(在伪代码中)是: 我对Python非常陌生,因此代码可能不合适,但我有以下几点:如何检查用户输入(Python),python,input,Python,Input,我已经看到了很多关于这个问题的答案,但我正在寻找一些非常具体的答案。我需要完成的(在伪代码中)是: 我对Python非常陌生,因此代码可能不合适,但我有以下几点: def enter_quantity(): for q in menu: quantities[q] = int(input("How many orders of " + str(q) + "?: ")) 因此,除了评估用户输入之外,这一切都可以完成。我遇到的问题是,如果输入不正确,我需要在顶级for循环中为同一项
def enter_quantity():
for q in menu:
quantities[q] = int(input("How many orders of " + str(q) + "?: "))
因此,除了评估用户输入之外,这一切都可以完成。我遇到的问题是,如果输入不正确,我需要在顶级for循环中为同一项重新提示他们。因此,如果它询问“多少片比萨饼?”并且用户输入“十”,我希望它说“对不起,那不是一个数字”,然后再次返回“多少片比萨饼?”的提示
欢迎提出任何意见。谢谢
我的最终解决方案:
def enter_quantity():
for q in menu:
booltest = False
while booltest == False:
inp = input("How many orders of " + str(q) + "?: ")
try:
int(inp)
booltest = True
except ValueError:
print (inp + " is not a number. Please enter a nermic quantity.")
quantities[q] = int(inp)
您需要一个带有try/except的while循环来验证输入:
def enter_quantity():
for q in menu:
while True:
inp = input("How many orders of {} ?: ".format(q))
try:
inp = int(inp) # try cast to int
break
except ValueError:
# if we get here user entered invalid input so print message and ask again
print("{} is not a number".format(inp))
continue
# out of while so inp is good, update dict
quantities[q] = inp
如果添加了一个菜单,那么这段代码会更有用,否则它会在第一关崩溃。我还添加了一个字典来存储输入值
menu = 'pizza', 'pasta', 'vino'
quantities = {}
def enter_quantity():
for q in menu:
while True:
if q == 'pizza':
inp = input(f"How many slices of {q} ?: ")
elif q == 'pasta':
inp = input(f"How many plates of {q} ?: ")
elif q == 'vino':
inp = input(f"How many glasses of {q} ?: ")
try:
inp = int(inp) # try cast to int
break
except ValueError:
# exception is triggered if invalid input is entered. Print message and ask again
print("{} is not a number".format(inp))
continue
# while loop is OK, update the dictionary
quantities[q] = inp
print(quantities)
然后从以下命令运行代码:
enter_quantity()
很抱歉我省略了一段代码。。。第一篇文章,我将对它进行编辑,以反映出那里有一个FOR循环。谢谢你的评论,我会尝试一下。没问题,这个例子的主要内容是如何使用带有try/except的while循环来验证输入。我更新了我的示例。我找到了我的解决方案,我将标记您的答案并显示我的代码。真的很欣赏第二双眼睛!到目前为止,学习Python非常有趣。没问题,只是想让你知道我的代码和你的一样,我们只在每次迭代得到有效输入时才留下时间
enter_quantity()