Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 索引错误-是否使用“尝试除外”规则?_Python - Fatal编程技术网

Python 索引错误-是否使用“尝试除外”规则?

Python 索引错误-是否使用“尝试除外”规则?,python,Python,我的索引错误有问题。下面的代码基本上要求客户为他们的比萨选择输入相应的编号(在此之前打印了一份带有索引号的比萨列表)。我想这样做,如果客户输入的编号高于12,这是列表中最高的比萨编号,它会要求您再次输入相应的编号,如果这有道理的话。我听说你可以尝试除了错误,但我真的不知道怎么做 pizzaItem = int(input("Please enter the corresponding number to your pizza choice: ")) print("You have

我的索引错误有问题。下面的代码基本上要求客户为他们的比萨选择输入相应的编号(在此之前打印了一份带有索引号的比萨列表)。我想这样做,如果客户输入的编号高于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:")

您可以执行以下操作。这有一个变量称为pizza\u choice。这将在脚本开始时设置为“无”,并且只有当我们能够成功地将其转换为整数时,它才会设置为一个数字。因此,我们的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))

您可以执行以下操作。这有一个变量称为pizza\u choice。这将在脚本开始时设置为“无”,并且只有当我们能够成功地将其转换为整数时,它才会设置为一个数字。因此,我们的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")
pizzaItem=None
虽然pizzaItem为“无”:
pizzaItem=输入(“请为您的比萨选择输入相应的数字:”)

如果没有(pizzaItem.isdigit()和0添加此输入检查-它将重复此过程,直到用户输入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")
pizzaItem=None
虽然pizzaItem为“无”:
pizzaItem=输入(“请为您的比萨选择输入相应的数字:”)

如果不是(pizzaItem.isdigit()和0.isdigit()做什么?0可能是比萨饼列表的有效索引,可能使用
None
作为哨兵和
int(pizzaItem)Average_Coder isdigit();@salparadise谢谢你的建议,这很好,编辑了答案。isdigit()做什么do?0可能是比萨饼列表的有效索引,可能使用
None
作为哨兵和
int(pizzaItem)Average_Coder isdigit();@salparadise谢谢你的建议,很好,编辑了答案。请参阅: