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. 购物车1.0版——python第5天

    # 输出商品列表,用户输入序号,显示选中商品名称# 商品li = ['手机', '电脑', '耳机', '键盘', '鼠标']# 要求:1.页面显示序号+商品名称如下# 1 手机# 2 电脑# 3 耳 ...

  2. python练习_购物车(简版)

    python练习_购物车(简版) 需求: 写一个python购物车可以输入用户初始化金额 可以打印商品,且用户输入编号,即可购买商品 购物时计算用户余额,是否可以购买物品 退出结算时打印购物小票 以下 ...

  3. Python实现猜数字游戏1.0版

    本文由荒原之梦原创,原文链接:http://zhaokaifeng.com/?p=702 """ 功能: 随机生成一个数字,最多有3次猜测机会,如果第一次没有猜对,则从第 ...

  4. 自定义高级版python线程池

    基于简单版创建类对象过多,现自定义高级版python线程池,代码如下 #高级线程池 import queue import threading import time StopEvent = obje ...

  5. PyTorch1.2.0版本来啦!居然还有全套视频!让你快速熟练掌握深度学习框架!

    [翻到文末, 还能让你看尽CV和NLP完整技术路径以及前沿+经典论文篇目,助你构建深度学习知识框架] 今年8月!PyTorch 1.2.0 版本来啦!! 据我们了解,在学术领域,特别是CV/NLP方向 ...

  6. Tapdata 的 2.0 版 ,开源的 Live Data Platform 现已发布

    https://www.bilibili.com/video/BV1tT411g7PA/?aid=470724972&cid=766317673&page=1 点击上方链接,一分钟快速 ...

  7. 基于DDDLite的权限管理OpenAuth.net 1.0版正式发布

    距离上一篇OpenAuth.net的文章已经有5个多月了,在这段时间里项目得到了很多朋友的认可,开源中国上面的Star数接近300,于是坚定了我做下去的信心.最近稍微清闲点,正式推出1.0版,并在阿里 ...

  8. [转载]我的Java后端书架 (2016年暖冬4.0版)

      [转载]我的Java后端书架 (2016年暖冬4.0版) ps:最近正在初学Java,有一些其他语言的底子,但是还是要好好看书,好好练习,网上找了好久,都没有这份书单来的实用,特意转载过来,方便以 ...

  9. UrlPager免费分页控件2.0版发布!

    UrlPager是一个ASP.NET WebForm应用程序中通过url进行分页的分页控件,支持使用url路由来生成自定义的分页url.与AspNetPager不同,UrlPager需.NET Fra ...

随机推荐

  1. dp(不连续和)

      I - I HDU - 2845   Bean-eating is an interesting game, everyone owns an M*N matrix, which is fille ...

  2. 纯css实现星级评分效果

    效果 效果图如下,纯css实现超酷炫的星级评分动画效果 ​ 实现思路 5个类型为radio的input,label标签修改样式背景图为星星 label标签给每个星星鼠标停留时加注名字 点击星星有放大旋 ...

  3. 1.报表TIBCO Jaspersoft Studio工具教程入门--生成jrxml和jasper文件 然后拖拽到项目中 跟ireport一样

    转自:https://blog.csdn.net/KingSea168/article/details/42553781 2. 在接下来的教程中,我们将实现一个简单的JasperReports示例,展 ...

  4. JWT 实现基于API的用户认证

    基于 JWT-Auth 实现 API 验证 如果想要了解其生成Token的算法原理,请自行查阅相关资料 需要提及的几点: 使用session存在的问题: session和cookie是为了解决http ...

  5. json字符串处理—Json&C#

    C# 转自:https://blog.csdn.net/sajiazaici/article/details/77647625# 本文是全网第二简单的方法,因为我女票也发了一篇博客说是全网最简单的方法 ...

  6. AbstractQueuedSynchronizer简单使用

    AQS是JUC中很多同步组件的构建基础,简单来讲,它内部实现主要是状态变量state和一个FIFO队列来完成,同步队列的头结点是当前获取到同步状态的结点,获取同步状态state失败的线程,会被构造成一 ...

  7. MFC的Dlg和App什么区别?应用程序类与对话框类

    MFC里有个app类..他是一个项目工程类,有一个全局的实例化.theApp你可以理解为整个项目的实例,它重载了入口函数,所有的窗口神马的,都是在这个类里实例化的. dlg是对话框,是一个窗口.一个程 ...

  8. ivew select组件 DatePicker组件的清空

    <Form ref="formInline" :model="formInline" :rules="ruleInline" inli ...

  9. canvas 点击图片播放视频

    canvas.js window.onload=function() { var canvas = document.getElementById('canvas'); var ctx= canvas ...

  10. python的转义字符,以及字符串输出转义字符

    Python的转义字符及其含义     符    号     说     明       \'   单引号       \"   双引号       \a   发出系统响铃声       \ ...