Python实现商城购物经典案例
代码分步骤思路:
商城添加商品: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实现商城购物经典案例的更多相关文章
- python经典案例
前言:初学者对python的流程语句有一定的了解,但是运用起来总会磕磕碰碰.本文总结了一些初学者在学习python时做的经典案例 一.名片管理系统(限单个名片) info = {'name':'jam ...
- Python递归的经典案例
目录 : 一.递归的简介 二.递归的经典应用 2.1 递归求阶乘 2.2 递归推斐波那契数列 2.3 二分法找有序列表指定值 2.4 递归解汉诺塔 前言: 当我们碰到诸如需要求阶乘或斐 ...
- 经典案例之MouseJack
引言:在昨天的文章<无线键鼠监听与劫持>中,我们提到今天会向您介绍一个无线键鼠的监听与劫持的经典案例,<MouseJack>:MouseJack能利用无线鼠标和键盘存在的一些问 ...
- 100个Linux Shell脚本经典案例(附PDF)
转载自:https://mp.weixin.qq.com/s/tCKAM67_7K7q2vJthaIsDQ 原文链接:https://wenku.baidu.com/view/4f089430a116 ...
- javascript的理解及经典案例
js的简介: JavaScript是一种能让你的网页更加生动活泼的程式语言,也是目前网页中设计中最容易学又最方便的语言. 你可以利用JavaScript轻易的做出亲切的欢迎讯息.漂亮的数字钟.有广告效 ...
- jQuery基础的工厂函数以及定时器的经典案例
1. jQuery的基本信息: 1.1 定义: jQuery是JavaScript的程序库之一,它是JavaScript对象和实用函数的封装, 1.2 作用: 许多使用JavaScript能实现的交 ...
- Linux运维之道(大量经典案例、问题分析,运维案头书,红帽推荐)
Linux运维之道(大量经典案例.问题分析,运维案头书,红帽推荐) 丁明一 编 ISBN 978-7-121-21877-4 2014年1月出版 定价:69.00元 448页 16开 编辑推荐 1 ...
- 经典案例:那些让人赞不绝口的创新 HTML5 网站
在过去的10年里,网页设计师使用 Flash.JavaScript 或其他复杂的软件和技术来创建网站.但现在你可以前所未有的快速.轻松地设计或创造互动的.有趣好看的网站.如何创建?答案是 HTML5 ...
- Altera OpenCL用于计算机领域的13个经典案例(转)
英文出自:Streamcomputing 转自:http://www.csdn.net/article/2013-10-29/2817319-the-application-areas-opencl- ...
- php中foreach()函数与Array数组经典案例讲解
//php中foreach()函数与Array数组经典案例讲解 function getVal($v) { return $v; //可以加任意检查代码,列入要求$v必须是数字,或过滤非法字符串等.} ...
随机推荐
- 2022-05-09:k8s安装lalserver流媒体服务器,yaml如何写?
2022-05-09:k8s安装lalserver流媒体服务器,yaml如何写? 答案2022-05-09: yaml如下: apiVersion: apps/v1 kind: Deployment ...
- 2022-04-24:位集 Bitset 是一种能以紧凑形式存储位的数据结构。 请你实现 Bitset 类。 Bitset(int size) 用 size 个位初始化 Bitset ,所有位都是 0
2022-04-24:位集 Bitset 是一种能以紧凑形式存储位的数据结构. 请你实现 Bitset 类. Bitset(int size) 用 size 个位初始化 Bitset ,所有位都是 0 ...
- 2021-09-28:合并区间。以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠
2021-09-28:合并区间.以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] .请你合并所有重叠的区间,并返回一个不重叠 ...
- Django4全栈进阶之路22 项目实战(三种方式开发部门管理):方式三:FBV+ModelForm+get_object_or_404
1.视图 @login_required def department_list_view(request): departments = Department.objects.all() retur ...
- 运行和编译时期资源加载的不同【vue】
开发语言都有编译和运行两个阶段,很多时候这个也会带来许多bug 如:一个项目在开发阶段测试没有问题,然上线发布后就会有这样那样的问题,譬如说图片的加载,静态数据(js,css,json)读取错误 一 ...
- KL变换
covariance 指两个变量的相关性:cov(x, y) =E(x y) - E(x) E(y) cov(x, y) < 0 负相关 cov(x, y) = 0 无关 cov(x, y) & ...
- [AGC055B] ABC Supremacy 题解
[AGC055B] ABC Supremacy 题解 题目描述 给定两个长度为 \(n\) 的字符串 \(a\),\(b\). 你可以进行若干次以下操作: 若 \(a\) 中的一个子串为 ABC,BC ...
- SpringBoot之MVC配置(WebMvcConfigurer详解)
一:基本介绍 Spring MVC是一种常用的Java Web框架,它提供了一种基于MVC模式的开发方式,可以方便地实现Web应用程序.在Spring MVC中,WebMvcConfigurer是一种 ...
- Winform或WebForm使用ReportViewer报表设计,工具栏按钮英文显示的解决办法
在项目开发中,我们总是会用到rdlc报表设计器,大多数情况下在本地开发环境中工具栏按钮显示的是中文,但是部署到客户环境后发现显示的是英文. 解决这个问题也是走了很多弯路,给大家简单说一下: 1.最初以 ...
- Python编程和数据科学中的人工智能:如何创建复杂的智能系统并提高模型性能
目录 1. 引言 2. 技术原理及概念 3. 实现步骤与流程 4. 应用示例与代码实现讲解 标题:<Python编程和数据科学中的人工智能:如何创建复杂的智能系统并提高模型性能> 1. 引 ...