"""
功能要求:
1.要求用户输入自己拥有的总资产,例如:2000
2.显示商品列表的序号,商品名称,商品价格,让用户根据序号选择商品,然后加入购物车
例如:
1 电脑 1999
2 鼠标 10
3 游艇 20
3.用户可以多次购买商品
4.用户输入q退出|输入n结算
5.结算的时候如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
]
"""
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998}]
1 account=int(input("请输入您的资产:"))
2 i=0
3 dic={}
4 for el in goods:
5 i+=1
6 dic.setdefault(str(i)+el["name"],el["price"]) #使用字符串拼接,把序号加到键前面
7 print(dic)
8
9 lst=[] #创建一个列表形式的购物车
10 money=0 #购物车中初始值为0
11 while 1:
12 ret=input("请输入您要买的东西序号(q退出.n结算):").strip()
13 if ret.isdigit():
14 for el in dic:
15 if ret == el[0]: #利用切片得到商品序号,判断用户输入的序号是否是商品序号
16 lst.append(el[1:]) #将商品添加到列表中
17 money +=dic[el] #计算购物车中商品的总价
18 print("购物车中有:%s,消费总额为%s"%([i for i in lst],money))
19
20 elif ret.upper()=="Q": #执行退出操作
21 print("退出成功!
余额还有%s"%account)
22 break
23 elif ret.upper()=="N": #执行结算操作
24 blance=account-money #余额 = 资产 - 消费总额
25 if blance <0:
26 print("您的余额不足!!!")
27 else:
28 print("购买成功,花费了%d,余额还剩%s"%(money,blance))
29 break
30 else:
31 print("输入有误,请再次输入!!!")