"""
功能要求:
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}]
 account=int(input("请输入您的资产:"))
i=0
dic={}
for el in goods:
i+=1
dic.setdefault(str(i)+el["name"],el["price"]) #使用字符串拼接,把序号加到键前面
print(dic) lst=[] #创建一个列表形式的购物车
money=0 #购物车中初始值为0
while 1:
ret=input("请输入您要买的东西序号(q退出.n结算):").strip()
if ret.isdigit():
for el in dic:
if ret == el[0]: #利用切片得到商品序号,判断用户输入的序号是否是商品序号
lst.append(el[1:]) #将商品添加到列表中
money +=dic[el] #计算购物车中商品的总价
print("购物车中有:%s,消费总额为%s"%([i for i in lst],money)) elif ret.upper()=="Q": #执行退出操作
print("退出成功!\n余额还有%s"%account)
break
elif ret.upper()=="N": #执行结算操作
blance=account-money #余额 = 资产 - 消费总额
if blance <0:
print("您的余额不足!!!")
else:
print("购买成功,花费了%d,余额还剩%s"%(money,blance))
break
else:
print("输入有误,请再次输入!!!")

最新文章

  1. 孙鑫MFC学习笔记14:网络编程
  2. Xamarin Visual Studio提示找不到AssemblyAttributes.cs文件
  3. 如何在64位的Windows中安裝PLSQLDEVELOPER 8
  4. hOAuth2.0认证和授权原理
  5. 改进了UI的界面
  6. 自动布局autolayout和sizeclass的使用
  7. mysql创建计算列
  8. offset获取位置
  9. 敏捷(Agile)——“说三道四”
  10. 每周分享五个 PyCharm 使用技巧(二)
  11. consistent hash(一致性哈希算法)
  12. MAC帧和PPP帧区别
  13. 读写锁ReentrantReadWriteLock:读读共享,读写互斥,写写互斥
  14. PHP中Snoopy类的使用
  15. 基于c#的windows基础设计(学习日记1)【关于异或运算】
  16. 什么情况下,英文单词中的k发音变g,t发音变d,p发音变b
  17. Hadoop日记Day11---主从节点接口分析
  18. sqlserver不太常见的,可能常见但又疑问的tsql语句
  19. 使用基于 PHP 的开源软件 YOURLS 搭建短链接地址服务
  20. 小程序之底部tabBar

热门文章

  1. java获取文件大小的方法
  2. python 实现插入排序、冒泡排序、归并排序
  3. Spring Boot 的配置文件
  4. vue笔记2
  5. Save and read double array in a binary file
  6. 【[APIO2007]动物园】
  7. web-ctf随机数安全
  8. React 简单实例 (React-router + webpack + Antd )
  9. 【idea】配置node
  10. 树莓派gitlab