所以我正在为我的大学做一个作业,在python上制作一个简单的餐饮系统。代码中出现问题的部分:
def other_services():
global servicesCart
services = [{"name":"1. Tent per 10 feet","price":400},{"name":"2. Chairs per 50 peices","price":50},{"name":"3. Tables per 10 pieces","price":80},{"name":"4. Table cloth per 10 peices","price":20}]
print("Press E to exit")
while True:
for f in services:
print("Name : ",f['name'],"Price : ",str(f['price']))
selectedService = input("give your order")
if (selectedService == "E"):
cms()
try:
servicesCart.append(food_lunch[int(selectedService) - 1]) * (people)
except:
print("Wrong input, please try again.")}
问题是,无论我输入什么,输出仍然是错误的输入,请再试一次。其中的人是在代码开头询问的来宾数,具有整数值。任何帮助都会大有帮助。谢谢你
打印(“T代表帐篷\n C代表椅子\n Ta代表桌子\n Tac代表衣服桌子”) #您的产品清单: 列表1={“T”:“帐篷每10英尺价格:400美元”,“C”:“椅子每50张价格:50美元”,“Ta”:“桌子每10张价格:80美元”,“Tac”:“布桌每10张价格:20美元”}
如果为真: selectedService=input(“下订单”) 如果(selectedService==“E”): 打破 elif列表1中的selectedService: 打印(列表1[selectedService]) 其他: 打印(“您的请求不可用”)
不起作用:追加
food_lunch[int(selectedService) - 1]
,append
返回None
,然后将None
与people
相乘,从而触发异常:由于您过滤了所有的异常,您将得到错误消息,您将看到另一个错误:您必须获得“price”字典键
修正:
因此,如果发生任何事情,您将得到实际的错误消息,而不是一般的(错误的错误消息)
在这里,您可能希望从列表访问中捕获
IndexError
。我建议您使用len
而不是try/catch
块来检查边界它的优点是过滤负索引,只要它们的绝对值在范围内(可能不是您想要的),就可以被
[]
(列表末尾访问)愉快地接受相关问题 更多 >
编程相关推荐