使用try-except规则索引错误?

2024-06-17 15:40:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我的索引错误有问题。下面的代码基本上要求客户为他们选择的比萨饼输入相应的编号(在此之前会打印一份带有索引编号的比萨饼列表)。我想这样做,如果客户输入的编号高于12,这是列表中最高的比萨饼编号,它会要求您再次输入相应的编号,如果这有道理的话。我听说你可以尝试除了错误,但我真的不知道怎么做

   pizzaItem = int(input("Please enter the corresponding number to your pizza choice: "))
    print("You have added", pizzaMenu[pizzaItem]  , "to your order")
    pizzaOrder.append(pizzaMenu[pizzaItem])
    while len(pizzaOrder) != customerPizzaNumber:
            pizzaItem = int(input("Please enter the corresponding number to your pizza choice: "))
            print("You have added", pizzaMenu[pizzaItem] , "to your order")
            pizzaOrder.append(pizzaMenu[pizzaItem])
    print(" ")
    print("Thanks for chosing your pizzas. Here is your current order:")

Tags: to列表inputyour客户错误order编号
2条回答

你可以这样做。这有一个变量叫做pizza\u choice。这将在脚本开始时设置为None,只有当我们成功地将其转换为整数时,它才会设置为一个数字。所以我们的while循环会不断地询问用户正确的输入,直到我们能够成功地确定它是一个数字

为了使您的示例能够工作,您可能需要添加更多的检查来确定他们输入的数字是否允许。我的只是看看是不是数字。但是,您可能需要检查该数字是否在特定的选择范围内

pizza_choice = None

while pizza_choice is None:
    raw_response = input("Please enter your pizza number: ")

    if raw_response.isdigit():
        pizza_choice = int(raw_response)
    else:
        pass

print("Your selected pizza number is: {0}".format(pizza_choice))

添加此输入检查-它将重复此过程,直到用户输入低于12的数字:

pizzaItem = None
while pizzaItem is None:
    pizzaItem = input("Please enter the corresponding number to your pizza choice: "))
    if not (pizzaItem.isdigit() and 0 <= int(pizzaItem) <= len(pizzaMenu)):
        pizzaItem = None
    else:
        pizzaItem = int(pizzaItem)

print("You have added", pizzaMenu[pizzaItem]  , "to your order")

相关问题 更多 >