代码分步骤思路:

商城添加商品:opea_db = [{'store_name': '手机','num': 1}]

while True:
store_name=input('请输入需要存放的商品(按1退出添加1):')

# def f(o):
# list(filter(f,opea_db)) # 输出每个字典
def f(i):
if i['store_name']==store_name:
num=i['num']+1
i['num']=num
return i
else:
# 新添加的商品数量默认为0 没有库存
opea_db.append({'store_name':store_name,'num':0}) list(filter(f,opea_db))
print(opea_db)

或者这样写:
while True:
store_name=input('请输入需要存放的商品(按1退出添加1):')
if store_name=="1"
break
# def f(o):
# print(o)
# list(filter(f,opea_db)) # 输出每个字典
for i in opea_db:
if i['store_name']==store_name:
num=i['num']+1 # 在默认值基础上增加
# print(num)
i['num']=num
else:
opea_db.append({'store_name': store_name,'num':0 }) print(opea_db)

运行截图:

此写法缺陷:

增加新的商品且再次增加对应数量的话打印输出只显示最终商品数量,不要把前一次数量信息都显示出来,重复!

# 新添加的商品数量默认为0 没有库存
opea_db.append({'store_name':store_name,'num':0}) # 此部分没有过滤器过滤,导致输出存在重复

代码优化:新增商品

opea_db = [{'store_name': '手机','num': 1}]
while True:
store_name=input('请输入需要存放的商品(按1退出添加):')
if store_name=="1"
break
# def f(o):
# list(filter(f,opea_db)) # 输出每个字典
def f(i):
if i['store_name']==store_name:
num=i['num']+1
i['num']=num
return i
# else:
# # 新添加的商品数量默认为0 没有库存
# opea_db.append({'store_name':store_name,'num':0})
#
# list(filter(f,opea_db))
# print(opea_db) # 如果新添加商品(i['store_name']不等于store_name)没有返回值return 就None =====假的
需要执行否定语句,即下述代码 ---添加商品
if not list(filter(f,opea_db)):
# opea_db.append({'store_name':store_name,'num':1})
opea_db.append({'store_name': store_name,'num': 1})
print(opea_db)
     #if store_name=="1":
#break

运行截图:

Python实现商城购物经典案例的更多相关文章

  1. python经典案例

    前言:初学者对python的流程语句有一定的了解,但是运用起来总会磕磕碰碰.本文总结了一些初学者在学习python时做的经典案例 一.名片管理系统(限单个名片) info = {'name':'jam ...

  2. Python递归的经典案例

    目录 : 一.递归的简介 二.递归的经典应用   2.1 递归求阶乘   2.2 递归推斐波那契数列   2.3 二分法找有序列表指定值   2.4 递归解汉诺塔 前言: 当我们碰到诸如需要求阶乘或斐 ...

  3. 经典案例之MouseJack

    引言:在昨天的文章<无线键鼠监听与劫持>中,我们提到今天会向您介绍一个无线键鼠的监听与劫持的经典案例,<MouseJack>:MouseJack能利用无线鼠标和键盘存在的一些问 ...

  4. 100个Linux Shell脚本经典案例(附PDF)

    转载自:https://mp.weixin.qq.com/s/tCKAM67_7K7q2vJthaIsDQ 原文链接:https://wenku.baidu.com/view/4f089430a116 ...

  5. javascript的理解及经典案例

    js的简介: JavaScript是一种能让你的网页更加生动活泼的程式语言,也是目前网页中设计中最容易学又最方便的语言. 你可以利用JavaScript轻易的做出亲切的欢迎讯息.漂亮的数字钟.有广告效 ...

  6. jQuery基础的工厂函数以及定时器的经典案例

    1. jQuery的基本信息:  1.1 定义: jQuery是JavaScript的程序库之一,它是JavaScript对象和实用函数的封装, 1.2 作用: 许多使用JavaScript能实现的交 ...

  7. Linux运维之道(大量经典案例、问题分析,运维案头书,红帽推荐)

    Linux运维之道(大量经典案例.问题分析,运维案头书,红帽推荐) 丁明一 编   ISBN 978-7-121-21877-4 2014年1月出版 定价:69.00元 448页 16开 编辑推荐 1 ...

  8. 经典案例:那些让人赞不绝口的创新 HTML5 网站

    在过去的10年里,网页设计师使用 Flash.JavaScript 或其他复杂的软件和技术来创建网站.但现在你可以前所未有的快速.轻松地设计或创造互动的.有趣好看的网站.如何创建?答案是 HTML5 ...

  9. Altera OpenCL用于计算机领域的13个经典案例(转)

    英文出自:Streamcomputing 转自:http://www.csdn.net/article/2013-10-29/2817319-the-application-areas-opencl- ...

  10. php中foreach()函数与Array数组经典案例讲解

    //php中foreach()函数与Array数组经典案例讲解 function getVal($v) { return $v; //可以加任意检查代码,列入要求$v必须是数字,或过滤非法字符串等.} ...

随机推荐

  1. TokenObtainPairView

    TokenObtainPairView是由Django REST framework的SimpleJWT库提供的视图.它用于生成JSON Web Token(JWT)

  2. django 整合 vue

    django 整合 vue   安装 vue 1. 安装 node.js , 官网地址: https://nodejs.org/zh-cn/download/ 2. 使用 npm 淘宝镜像 npm i ...

  3. weex 开发APP 多行文本溢出处理

    weex中文字溢出不能使用常规的overflow:hidden 如: .text { overflow: hidden; text-overflow: ellipsis; white-space: n ...

  4. wait,notify,notifyAll,sleep,join等线程方法的全方位演练

    一.概念解释 1. 进入阻塞: 有时我们想让一个线程或多个线程暂时去休息一下,可以使用 wait(),使线程进入到阻塞状态,等到后面用到它时,再使用notify().notifyAll() 唤醒它,线 ...

  5. 【Python】sqlmodel: Python 数据库管理ORM 的终极形态?

    ORM 大家都知道ORM(Object Relational Mapping)是一种将对象和关系数据库中的表进行映射的技术,它可以让开发者更加方便地操作数据库,而不用直接使用SQL语句. 直接使用SQ ...

  6. opencv图像显示问题

    opencv 的图像类型都是numpy array.dtype = uint8. 如果是默认的python的int类型的numpy array,即使每个整数都在范围0-255, 图像也不会显示,必须转 ...

  7. 实例讲解Flink 流处理程序编程模型

    摘要:在深入了解 Flink 实时数据处理程序的开发之前,先通过一个简单示例来了解使用 Flink 的 DataStream API 构建有状态流应用程序的过程. 本文分享自华为云社区<Flin ...

  8. 前端仿京东、天猫底部购物工具栏toolsBar、购物车栏、底部悬浮栏

    快速实现 前端仿京东.天猫底部购物工具栏toolsBar.购物车栏.底部悬浮栏, 详情请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=1255 ...

  9. PostgreSQL 性能优化: 等待事件

    等待事件 等待事件是 PostgreSQL 的重要优化工具.当您能查明会话为什么在等待资源以及会话在做什么时,您就能更好地减少瓶颈.您可以使用本节中的信息来查找可能的原因和纠正措施. 目录 等待事件概 ...

  10. 基于JavaFX的扫雷游戏实现(二)——游戏界面

      废话环节:看过上期文章的小伙伴现在可能还是一头雾水,怎么就完成了核心内容,界面呢?哎我说别急让我先急,博主这不夜以继日地肝出了界面部分嘛.还是老规矩,不会把所有地方都照顾到,只挑一些有代表性的内容 ...