"""
功能要求:
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("退出成功!\n余额还有%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("输入有误,请再次输入!!!")