访问列表并添加它们,python解决方案

Accessing list and adding them total, python solution

提问人:zacknight 提问时间:1/6/2023 最后编辑:logi-kalzacknight 更新时间:1/7/2023 访问量:65

问:

研究所的食堂有一张物品价格表,例如:

  • 萨摩萨: 15
  • 闲置:30
  • 玛姬:50
  • 多萨,70岁
  • ...

对于您必须编写的程序,请通过此语句在程序中设置菜单(随意添加更多项目)。

menu = [("Samosa", 15), ("Idli", 30), ("Maggie", 50), ("Dosa", 70), ("Tea", 10), ("Coffee", 20), ("Sandwich", 35), ("ColdDrink", 25)]

编写一个程序,在终端上接受用户的订单并计算账单。首先通过打印菜单来显示菜单。对于订购商品,用户输入商品编号和所需数量(例如,输入可以是:后跟)。程序应提示用户订购更多,直到他/她点击返回(没有任何数字) - 这是订单的结束。在表单中打印此订单的账单(对于上面的输入示例):3 11 5

Maggie, 1, Rs 50
Samosa, 5, Rs 75

TOTAL, 6 items, Rs 125

如何访问列表并获取输入并添加它们?

python 列表 输入

评论

0赞 logi-kal 1/7/2023
为什么要指定“answer-set-programming”标签?我删除了它,因为这不是 ASP。

答:

0赞 logi-kal 1/7/2023 #1

首先初始化全局变量:

bill = []
total_quantity = 0
total_price = 0

在循环中,您将要求提供订单,如果它是空字符串,则退出循环:

order = input("Please specify an item number and a quantity: ")
if order == "" : break

然后,通过拆分空格前后的输入字符串来解析顺序:

(index_string, quantity_string) = order.split(" ")

现在访问变量并计算价格:menu

quantity = int(quantity_string)
item = menu[int(index_string)-1]
name = item[0]
unit_price = int(item[1])
price = unit_price * quantity

并更新全局变量:

bill.append("%s, %d, Rs %d" % (name, quantity, price))
total_quantity += quantity
total_price += price

最后,您可以打印收集的内容:

for string in bill :
    print(string)

print("\nTOTAL, %d items, Rs %d" % (total_quantity, total_price))

这是最终代码:

menu = [("Samosa", 15), ("Idli", 30), ("Maggie", 50), ("Dosa", 70), ("Tea", 10), ("Coffee", 20), ("Sandwich", 35), ("ColdDrink", 25)]
print(menu)

bill = []
total_quantity = 0
total_price = 0
while True :
    order = input("Please specify an item number and a quantity: ")
    if order == "" : break
    (index_string, quantity_string) = order.split(" ")
    quantity = int(quantity_string)
    item = menu[int(index_string)-1]
    name = item[0]
    unit_price = int(item[1])
    price = unit_price * quantity
    bill.append("%s, %d, Rs %d" % (name, quantity, price))
    total_quantity += quantity
    total_price += price

for string in bill :
    print(string)

print("\nTOTAL, %d items, Rs %d" % (total_quantity, total_price))