购物车2.0版——python第6天
li = [{'name': '手机', 'price': ''},
{'name': '电脑', 'price': ''},
{'name': '耳机', 'price': ''},
{'name': '鼠标', 'price': ''},
{'name': '键盘', 'price': ''},
]
shopping_car = {} # 定义购物车dict
print('欢迎光临尚雅梦想旗舰店'.center(40))
# 先让顾客输入携带的金钱数量,再显示商品列表(方便后续升级版可以根据金额多少推荐不同价位的商品,千人千面)
money = input('请输入您所携带的金钱数量:').strip() # 这里将顾客输入的字符串前后空格去掉,使用strip
f_money = int(money)
for i, k in enumerate(li, 1): # 使用enumerate参数遍历可迭代对象list列表,同时获取索引和值
print('序号{}\t\t名称:{}\t\t价格:{}元/个'.format(i, k['name'], k['price'])) # 使用format占位
flag = True
while flag:
choose = input('''请输入您要购买的商品序号:退出请按'q'或者'Q''''').strip()
if choose.upper() == 'Q':
break
if choose.isdigit() and int(choose) <= len(li): # 判断输入的序号是否符合
num = input('请输入您要购买的数量').strip()
if num.isdigit():
if int(money) > int(li[int(choose) - 1]['price']) * int(num):
money = int(money) - int(li[int(choose) - 1]['price']) * int(num)
else:
print('抱歉!您所携带的金额不足,请补充后再进行购物。')
break
if li[int(choose) - 1]['name'] in shopping_car:
print('''您的购物车里已经有{}个{}'''.format(int(shopping_car[li[int(choose) - 1]['name']]),
li[int(choose) - 1]['name']))
order = input('''继续添加请按'y'或者'Y',按其他重新选择''').strip()
if order.upper() == 'Y':
shopping_car[li[int(choose) - 1]['name']] = shopping_car[li[int(choose) - 1]['name']] + int(num)
else:
continue
else:
shopping_car[li[int(choose) - 1]['name']] = int(num)
else:
print('您的输入有误,请重新输入:')
print('您的购物车里有{},本次消费一共花费{}元,余额为{}元'.format(shopping_car, f_money - money, money))
升级版购物车代码,后续将继续根据学习的内容逐步完善更新
购物车2.0版——python第6天的更多相关文章
- 购物车1.0版——python第5天
# 输出商品列表,用户输入序号,显示选中商品名称# 商品li = ['手机', '电脑', '耳机', '键盘', '鼠标']# 要求:1.页面显示序号+商品名称如下# 1 手机# 2 电脑# 3 耳 ...
- python练习_购物车(简版)
python练习_购物车(简版) 需求: 写一个python购物车可以输入用户初始化金额 可以打印商品,且用户输入编号,即可购买商品 购物时计算用户余额,是否可以购买物品 退出结算时打印购物小票 以下 ...
- Python实现猜数字游戏1.0版
本文由荒原之梦原创,原文链接:http://zhaokaifeng.com/?p=702 """ 功能: 随机生成一个数字,最多有3次猜测机会,如果第一次没有猜对,则从第 ...
- 自定义高级版python线程池
基于简单版创建类对象过多,现自定义高级版python线程池,代码如下 #高级线程池 import queue import threading import time StopEvent = obje ...
- PyTorch1.2.0版本来啦!居然还有全套视频!让你快速熟练掌握深度学习框架!
[翻到文末, 还能让你看尽CV和NLP完整技术路径以及前沿+经典论文篇目,助你构建深度学习知识框架] 今年8月!PyTorch 1.2.0 版本来啦!! 据我们了解,在学术领域,特别是CV/NLP方向 ...
- Tapdata 的 2.0 版 ,开源的 Live Data Platform 现已发布
https://www.bilibili.com/video/BV1tT411g7PA/?aid=470724972&cid=766317673&page=1 点击上方链接,一分钟快速 ...
- 基于DDDLite的权限管理OpenAuth.net 1.0版正式发布
距离上一篇OpenAuth.net的文章已经有5个多月了,在这段时间里项目得到了很多朋友的认可,开源中国上面的Star数接近300,于是坚定了我做下去的信心.最近稍微清闲点,正式推出1.0版,并在阿里 ...
- [转载]我的Java后端书架 (2016年暖冬4.0版)
[转载]我的Java后端书架 (2016年暖冬4.0版) ps:最近正在初学Java,有一些其他语言的底子,但是还是要好好看书,好好练习,网上找了好久,都没有这份书单来的实用,特意转载过来,方便以 ...
- UrlPager免费分页控件2.0版发布!
UrlPager是一个ASP.NET WebForm应用程序中通过url进行分页的分页控件,支持使用url路由来生成自定义的分页url.与AspNetPager不同,UrlPager需.NET Fra ...
随机推荐
- 浏览器调起摄像头(jquery+layui)
/* 实例化camvas配置参数 config = { video:{width:Number(scale*4),height:Number(scale*3)},//视频比例4:3 canvasId: ...
- python 字符编码问题总结
都是计算机存储是二进制0101之类的数字 最早计算机在美国开始的 所以数字和英文之类的占用八位 2的8次方 256可以存储对于英文和数字戳戳有余 每个国家都有自己的编码 中国 gb2312 gbk ...
- mysql 删除重复数据只保留一条记录
删除重复数据保留name中id最小的记录 delete from order_info where id not in (select id from (select min(id) as id fr ...
- BUUCTF--不一样的flag
测试文件:https://buuoj.cn/files/91b89e765c9aff8e82690c0868975b37/0bf39b5d-5f2f-4095-a921-fb5c20f53f21.zi ...
- k3 cloud中库存转移处理
有个苗木基地的苗木要转移到另一个,是做那个单据 解决办法:两个基地是同一组织 做直接调拨单就行了 ,不同组织做调拨申请单,然后做 分布式调出 分布式调入
- swiper轮播图设置每组显示的个数及自定义slide宽度
一.html演示代码: <div class="swiper-container"> <div class="swiper-wrapper"& ...
- Linux就该这么学10学习笔记
参考链接:https://www.linuxprobe.com/chapter-10.html 网站服务程序 第1步:把光盘设备中的系统镜像挂载到/media/cdrom目录. [root@linux ...
- (ACM模板)二分查找
二分是一个比较大的概念,广义上把东西(可能是问题,区间等等)一分为二都是二分. 这里讲二分查找. 据说只有10%的程序员能写对二分.虽然二分是一个简单的算法.但是其变化和细节却并不简单. 整数二分: ...
- openstack创建一个虚拟机的过程
为什要用云? 一.简单的说就是对资源更加合理的分配,使用,比如硬件的数量,带宽等等这些,因为你不能机器买来不需要了再卖掉(当然也可以),带宽跟机房签合同得来一年的,中间不够了也不能加,超了也不退钱 ...
- HTML5:Canvas-绘制图形
到本文的最后,你将学会如何绘制矩形,三角形,直线,圆弧和曲线,变得熟悉这些基本的形状.绘制物体到Canvas前,需掌握路径,我们看看到底怎么做. 栅格 在我们开始画图之前,我们需要了解一下画布栅格(c ...