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