习题四 答案

方案一:

 1 goods = [
 2     {"name": "电脑", "price": 1999},
 3     {"name": "鼠标", "price": 10},
 4     {"name": "游艇", "price": 20},
 5     {"name": "美女", "price": 998}
 6 ]
 7 def chongzhi():
 8     global zongzichan
 9     e = int(input("请输入充值金额:"))
10     zongzichan = zongzichan + e
11     print("充值成功,返回购物车.")
12     gouwuche()
13     
14 def gouwuche():
15     global zongzichan
16     xiaofei = 0
17     print("您选购的商品如下:")
18     for c, c1 in enumerate(list, 1):
19         for c2, c3 in c1.items():
20             xiaofei = xiaofei + c3
21             print(c, c2, c3)
22     print("总价格:", xiaofei)
23     while True:
24         d = input("请选择结算(yes) or 前往充值(no):")
25         if d == "yes" and zongzichan >= 0:
26             print("购买成功,您一共消费了:", xiaofei, "总资产剩余:", zongzichan)
27             print("欢迎下次光临,再见.")
28             break
29         elif d == "yes" and zongzichan < 0:
30             d1 = input("购买失败,余额不足,请选择前往充值(yes) or 前往购物车移除商品(no):")
31             if d1 == "yes":
32                 chongzhi()
33             elif d1 == "no":
34                 d2 = int(input("请输入商品编号移除出购物车:"))
35                 d3 = list[d2-1]
36                 for d4, d5 in d3.items():
37                     zongzichan = zongzichan + d5
38                     del list[d2-1]
39                     print("您移除了:", d4, d5)
40                     gouwuche()
41             else:
42                 print("指令错误")
43         elif d == "no":
44             chongzhi()
45         else:
46             print("指令错误")
47         
48     exit()
49     
50 def shangpin():
51     global list
52     global zongzichan
53     list = []
54     while True:
55         print("商品编号、名称、价格列表:")
56         for keys, a in enumerate(goods, 1):
57             a1 = a.get("name")
58             a2 = a.get("price")
59             print(keys, a1, a2)
60         dict = {}
61         a3 = int(input("请输入商品编号将其加入购物车:"))
62         zongzichan = zongzichan - goods[a3-1]["price"]
63         a4 = goods[a3-1]["name"]
64         a5 = goods[a3-1]["price"]
65         print("商品:",goods[a3-1]["name"], "价格:",goods[a3-1]["price"], "已加入购物车.")
66         dict[a4] = a5
67         list.append(dict)
68         b = input("请选择继续购物(yes) or 去购物车结算(no):")
69         if b == "yes":
70             continue
71         elif b == "no":
72             gouwuche()
73         else:
74             print("指令错误")
75                 
76 def zichan():
77     global zongzichan
78     zongzichan = int(input("请输入总资产:"))
79     shangpin()
80     
81 zichan()

方案二(无充值):

 1 goods = [
 2     {"name": "电脑", "price": 1999},
 3     {"name": "鼠标", "price": 10},
 4     {"name": "游艇", "price": 20},
 5     {"name": "美女", "price": 998}
 6 ]
 7 
 8 zongzichan = int(input("请输入总资产:"))
 9 xiaofei = 0
10 gouwuche = {}
11 for a in goods:
12     print(a["name"], a["price"])
13     
14 while True:
15     shangpin = input("请输入商品名称加入购物车 or 输入Y/y去购物车结算:")
16     if shangpin.lower() == "y":
17         break
18     for a1 in goods:
19         if a1["name"] == shangpin:
20             if a1["name"] in gouwuche.keys():
21                 gouwuche[a1["name"]]["num"] = gouwuche[a1["name"]]["num"] + 1
22             else:
23                 gouwuche[a1["name"]] = {"num":1, "jiage":a1["price"]} 
24 
25 for b , b1 in gouwuche.items():
26     b2 = b1["jiage"]
27     b3 = b1["num"]
28     b4 = b2 * b3
29     xiaofei  = xiaofei + b4
30 if xiaofei > zongzichan:
31     print("购买失败,余额不足")
32 else:
33     print("购买成功")

 

posted @ 2017-10-16 13:39  萌萌哒小强儿  阅读(221)  评论(0编辑  收藏  举报