"""
功能要求:
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("输入有误,请再次输入!!!")

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。