购物车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 ...
随机推荐
- P3191 [HNOI2007]紧急疏散EVACUATE(费用流)
P3191 [HNOI2007]紧急疏散EVACUATE 费用流+卡常优化 我们只关心一个人通过门时的时间,在空地的行走时间可以分层维护 于是根据时间分层,到门的时候再计算代价,即代价$=$层数 每经 ...
- ASP.NET MVC5 +Abp 模板(Startup Templates)
官网:https://aspnetboilerplate.com/Templates 系统登陆初始账号:admin 密码:123qwe 调试错误: 1.在多语句事务内不允许使用 CREATE DATA ...
- 攻防世界--python-trade
测试文件:https://adworld.xctf.org.cn/media/task/attachments/69c8f29912ae4f679d92a6cd36c33196.pyc 这里需要用到一 ...
- 安装weblogic界面安装
如果中间有任何问题请联系作者:291562721 界面安装weblogic首先 需要工具: 链接:https://pan.baidu.com/s/1x3uYxsnycjT2Xi2TOTbDdQ 提取码 ...
- js中Date的构造函数解读
javascript中的内置对象是我们经常会用到的,那么今天我们就来说说Date的四种构造方法吧 一.new Date() 这是我们最常使用也最熟悉不过的Date对象的构造方法了,通过无参数的构造函数 ...
- 03.LNMP架构-PHP源码包编译部署详细步骤
一.环境准备 操作系统:CentOS_Server_7.5_x64_1804.iso 部署组件:yasm+libmcrypt+libvpx+tiff+libpng+freetype+jpeg+libg ...
- 微信小程序(17)-- RSA加密 解密 加签 验签
RSA加密 解密 加签 验签 /** * 注:区分RSA私钥的类型,有pkcs1和pkcs8.pkcs8格式的私钥主要用于Java中 pkcs1格式: -----BEGIN RSA PRIVATE K ...
- 转载:PhpExcel使用方法
下面是总结的几个使用方法 include 'PHPExcel.php'; include 'PHPExcel/Writer/Excel2007.php'; //或者include 'PHPExcel/ ...
- java 静态内存图、静态代码块
package java08; /* 静态代码块格式: public class 类名称{ static{ //静态代码块 } } 特点:当第一次执行本类时,静态代码块执行唯一的一次 * */ pub ...
- Flutter-showBottomSheet底部彈出框
onPressed: () { showModalBottomSheet( context: context, builder: (BuildContext context) { return new ...