完成一个购物车程序

商品信息在shopping.txt文件中存储的,存储形式: name price 电脑 1999 鼠标 10 游艇 20 美女 998

要求:

1,用户先给自己的账户充钱:比如先充3000元。
2,读取商品信息文件将文件中的数据转化成下面的格式: goods = [{"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998},]

3,页面显示 序号 + 商品名称 + 商品价格,如: 1 电脑 1999 2 鼠标 10 …

4,用户输入选择的商品序号,然后打印商品名称及商品价格,并将此商品,添加到购物车(自己定义购物车),用户还可继续添加商品。

5,如果用户输入的商品序号有误,则提示输入有误,并重新输入。

6,用户输入n为购物车结算,依次显示用户购物车里面的商品,数量及单价,若充值的钱数不足,则让用户删除某商品,直至可以购买,若充值的钱数充足,则可以直接购买。

7,用户输入Q或者q退出程序。

8,退出程序之后,依次显示用户购买的商品,数量,单价,以及此次共消费多少钱,账户余额多少,并将购买信息写入文件。

 1 while True:
 2     money = input("请输入总资产:").strip()
 3     if money.isdecimal():
 4         break
 5     else:print("总资产输入错误,请重新输入")
 6 money = int(money)
 7 money1 = money
 8 buy = []
 9 goods = [{"name": "电脑", "price": 1999},
10            {"name": "鼠标", "price": 10},
11          {"name": "游艇", "price": 20},
12          {"name": "美女", "price": 998},
13 ]
14 pr = "price"
15 na = "name"
16 while True:
17     print("请选择如下商品".center(50,"*"))
18     for i,j in enumerate(goods,1):
19         print("编号{}\t\t商品名称:{}\t\t商品价格{}".format(i,j[na],j[pr]))
20     print("*"*55)
21     number = input("请输入要买商品的编号(充值请按C/c,删除请按D/d,退出请按Q/q):").strip()
22     if number.isdecimal():
23         number = int(number)
24         if number <= len(goods):
25             if goods[number-1][pr] <= money:
26                 buy.append(goods[number-1])
27                 money -= goods[number-1][pr]
28                 print("已经添加购物车 %s ,剩余总资产 %d" % (goods[number-1][na],money))
29             else:print("账户余额不足")
30         else:print("编号超出范围")
31     elif number.upper() == "Q":
32         if buy:
33             print("您购买的商品有:")
34             for k in buy:
35                 print(k[na])
36             print("总消费 %d" % (money1-money))
37         else:
38             print("您购物车为空")
39         break
40     elif number.upper() == "C":
41         while True:
42             money2 = input("请输入充值金额:")
43             if money2.isdigit():
44                 money2 = int(money2)
45                 money += money2
46                 print("充值成功,剩余总资产 %d" % money)
47                 break
48             else:print("充值金额不合法")
49     elif number.upper() == "D":
50         if buy:
51             print("购物车商品".center(50, "*"))
52             for l,m in enumerate(buy,1):
53                 print("编号{}\t\t商品名称:{}\t\t商品价格{}".format(l,m[na],m[pr]))
54             print("*"*55)
55             delate = input("请输出要删除商品的编号").strip()
56             if delate.isdigit():
57                 delate = int(delate)
58                 if delate <= len(buy):
59                     del buy[delate-1]
60                     print("已删除成功")
61                 else:print("输出的编号超出范围")
62             else:print("输出的编号不合法")
63         else:print("购物车为空")
64     else:print("输出的参数错误")
View Code

 

posted @ 2019-07-08 20:07  欢如平生  阅读(377)  评论(0编辑  收藏  举报