【问题标题】:using while loop to check errors with inputs in a list使用 while 循环检查列表中输入的错误
【发布时间】:2014-04-23 11:01:04
【问题描述】:

我一直在用python做一个程序...

selected_pizzas=[] #creates an empty list 
for n in range(pizza_number): 
    selected_pizzas = selected_pizzas + [int(input("Choose a pizza: "))]

这将允许用户输入最多 5 个数字并将它们存储在一个空列表 (selected_pizzas) 中,用户只能大声输入 0-11 之间的数字,我有一种使用 while 循环检查错误的方法用户输入,但我尝试过,但它似乎不适用于列表中输入的数字:

pizza_number=0
goodpizza_number=False 
while not goodpizza_number:
    try:
        pizza_number= int(input("How many Pizzas do you want? (MAX 5): "))
        if pizza_number ==0 or pizza_number > 5: #if the number of pizzas asked for is 0 or over 5 it will give an error message and repeat question
            print("Not a correct choice, Try again")
        else:
            goodpizza_number=True 
    except ValueError:
        print("Not a number, Try again")

我将如何使用此方法(上图)来确保用户在问题中显示的第一段代码中输入了预期的输入(数字从 0 到 11) 谢谢

【问题讨论】:

  • 你到底在问什么?你能重新表述一下这个问题吗?
  • 我只是想改写一下,对不起,我希望我已经修复够了
  • 以后尽量多解释什么不行。只是说“它似乎没有用”就让人猜不透了。

标签: python list while-loop


【解决方案1】:

你可以这样做:

selected_pizzas=[] #creates an empty list 
while len(selected_pizzas) < pizza_number:
    try:
        pizza_selection = int(input("Choose a pizza: "))
    except ValueError:
        print("Not a number, Try again")
    else:
        if 1 <= pizza_selection <= 11:
            selected_pizzas.append(pizza_selection)

这将确保即使在用户出错后您仍能获得正确数量的比萨饼。

【讨论】:

  • 我喜欢这个,除了pizza_selection in range(1,12)。如果要检查间隔,请使用比较运算符:1 &lt;= pizza_selection &lt;= 11
猜你喜欢
  • 2015-10-04
  • 1970-01-01
  • 2012-10-05
  • 1970-01-01
  • 2020-01-18
  • 2016-08-09
  • 1970-01-01
  • 2020-02-15
  • 2015-07-27
相关资源
最近更新 更多