【发布时间】:2019-12-03 17:24:33
【问题描述】:
我正在为我的 GCSE 完成 20 小时的编码任务,我正在尝试编写一些 python 代码来接受食品订单,然后将总数相加并返回所有订单的运行总数,直到那时。我当前的代码存在一些问题,而且我没有收到错误消息,所以我不确定如何修复它以使其达到我想要的效果。
这是我的代码:python code for ordering system
第一个问题是当输入某些项目引用组合时出现问题。总数没有按应有的方式添加,给了我一个小数位数不合理的浮点数,但情况并非总是如此。另一个问题是,当我输入 Y 下另一个订单时,它不让我。虽然当我输入 N 停止订购时,它会做我想做的事。
这是展示这些问题的输出:code that's gone wild with the adding and not allowing me to enter another order
这是一切正常的输出:all good
我已经设法在其他代码位中实现了这两个独立的概念,即停止或继续的 Y/N 和订购代码,但是当我在这里尝试它们时,它不起作用。我们已经研究了很长时间,但仍然无法弄清楚发生了什么。任何帮助将不胜感激!
[edit] 这是我正在努力解决的代码:
>menuItems = [' ', 'Large all day breakfast', 'Small all day breakfast', 'Hot dog', 'Burger', 'Cheese burger', 'Chicken goujons', 'Fries', 'Salad', 'Milkshake', 'Soft drink', 'Still water', 'Sparkling water']
>menuPrices = [0.00, 5.50, 3.50, 3.00, 4.00, 4.25, 3.50, 1.75, 2.20, 2.20, 1.30, 0.90, 0.90]
>orderTotal = 0 #resets the order total so that the total is accurate
>runningTotal = float(0.0)
>orderWords = 'Order: '
>orderItem = 1
>ordering = True
>while ordering == True:
> while orderItem != 0:
> orderItem = int(input('Please list the item reference number: '))
> orderTotal = orderTotal + (menuPrices[orderItem])
> orderWords = orderWords + ' ' + (menuItems[orderItem])
> runningTotal = runningTotal + (menuPrices[orderItem])
> else:
> print(orderWords)
> print('Your total is: £', orderTotal)
> ordering = False
>else:
> proceed = str(input('Do you want to place another order (Y/N)? '))
> if proceed == 'Y':
> ordering = True
> if proceed == 'N':
> ordering = False
> print('Running total: £', runningTotal)
> else:
> ordering = True
【问题讨论】:
-
如果不将代码发布在问题正文中而不是使用图像,您将获得反对票。您可以使用“如何提问”指南来帮助您...stackoverflow.com/help/how-to-ask
标签: python error-handling