python--购物车优化
- 基本要求:
用户入口
1、商品信息存在文件里
2、已购商品、余额记录,长期保存, 即第一次启动是需要输入预算的,以后就拿剩下的钱买东西- 商家入口
1、可以添加商品,删除商品,修改商品价格
2、按q可以退出- 实现:
1、用到list和dic
2、if判断 while和for循环
3、用文件记录商品信息和购物记录
- '''
- 购物车
- 用户入口
- 、商品信息存在文件里
- 、已购商品、余额记录,长期保存,
- 即第一次启动是需要输入预算的,以后就拿剩下的钱买东西
- 商家入口
- 、可以添加商品,修改商品价格
- 按q可以退出
- '''
- import os
- #定义函数
- #客户端
- def customer(budgetfile,productfile):
- #显示或获取当前预算
- budgetfd = open(budgetfile, 'r', encoding="utf-8")
- print("目前已购买:")
- cartdata=budgetfd.readline()
- cartlist=[]
- budget=''
- while cartdata:
- cartlist.append(cartdata.split(" ")[].strip())
- print(cartdata.split(" ")[])
- budget=cartdata.split(" ")[]
- cartdata=budgetfd.readline()
- flag=True
- if budget=='':
- while flag:
- budget=input("请输入购物预算: ")
- if budget.isdigit():
- budget=int(budget)
- flag=False
- else:
- print("必须输入数字。")
- continue
- else:
- print("您的余额是:"+budget)
- budget = int(budget)
- budgetfd.close()
- shopping=True
- while shopping:
- # 先显示当前商品列表
- productfd = open(productfile, 'r', encoding='utf-8')
- print("目前商品列表:")
- data = productfd.readline()
- datadic = {}
- while data:
- datadic[data.split(" ")[].strip()] = data.split(" ")[].strip()
- print(data)
- data = productfd.readline()
- productfd.close()
- choice=input("输入你要买的商品名称,按q退出:")
- if choice=='q':
- shopping=False;
- return True
- elif choice in datadic:
- if int(datadic[choice])<budget:
- fd=open(budgetfile,'a',encoding='utf-8')
- budget-=int(datadic[choice])
- print("您的余额是:"+str(budget))
- cartlist.append(choice)
- fd.write(choice+' '+str(budget)+'\n')
- fd.close()
- print("目前已购买:")
- for key in cartlist:
- print(key)
- else:
- print("预算不足,不能购买。")
- else:
- print("不存在该商品。")
- #商户端
- def boss(productfile):
- #打印目前商品列表
- fd=open(productfile,'r',encoding='utf-8')
- fd.close()
- while True:
- #先显示当前商品列表
- fd.close()
- fd = open(productfile, 'r+', encoding='utf-8')
- print("目前商品列表:")
- data = fd.readline()
- datadic = {}
- while data:
- datadic[data.split(" ")[].strip()] = data.split(" ")[].strip()
- print(data.split(" ")[].strip(), data.split(" ")[].strip())
- data = fd.readline()
- fd.close()
- operation = input("请输入您要做的操作:1表示增加商品、2表示删除商品、3表示修改商品价格、q表示退出程序: ")
- if operation=='':
- fd = open(productfile, 'a', encoding='utf-8')
- string=input("请输入要添加的商品及价格,用空格分隔:")
- key=string.split(" ")[].strip()
- value=string.split(" ")[].strip()
- if key not in datadic:
- fd.write(string+'\n')
- datadic[key]=value
- else:
- print("已存在该商品,不能添加")
- fd.close()
- elif operation=='':
- string = input("请输入要删除的商品名称: ")
- fd=open(productfile,'w',encoding='utf-8')
- if string in datadic:
- datadic.pop(string)
- else:
- print("要删除的商品不存在。")
- for key in datadic:
- fd.write(key + ' ' + datadic[key] + '\n')
- fd.close()
- elif operation=='':
- string=input("请输入要修改的商品名称和价钱,用空格分隔:")
- k=string.split(" ")[]
- v=string.split(" ")[]
- if k in datadic:
- datadic[k]=v
- else:
- print("要修改的商品不存在。")
- fd = open(productfile, 'w', encoding='utf-8')
- for key in datadic:
- fd.write(key+' '+datadic[key]+'\n')
- fd.close()
- elif operation=='q':
- fd.close()
- flag=False
- return True
- else:
- print("请输入准确的命令。")
- operation = input("请输入您要做的操作:1表示增加商品、2表示删除商品、3表示修改商品价格、q表示退出程序: ")
- #脚本主程序
- exitflag=False
- Ident=input("您是客户还是商户:")
- while not exitflag:
- if Ident=="客户":
- exitflag=customer("cartlist.txt","productlist.txt")
- elif Ident=="商户":
- exitflag=boss("productlist.txt")
- elif Ident=="q":
- exitflag=True
- print("退出程序。")
- else:
- print("请输入准确的字眼。")
- Ident = input("您是客户还是商户:")
python--购物车优化的更多相关文章
- python购物车优化
一.需求分析 拥有用户接口和商家接口 用户能够进行消费记录查询,充值,购物等功能,消费记录存储于数据库 商家可以进行商品的增删改等操作 二.程序流程图 程序大致流程图如下: 三.代码实现 本程序分成两 ...
- 简单的python购物车
这几天,一直在学python,跟着视频老师做了一个比较简单的python购物车,感觉不错,分享一下 products = [['Iphone8',6888],['MacPro ...
- python性能优化
注意:本文除非特殊指明,”python“都是代表CPython,即C语言实现的标准python,且本文所讨论的是版本为2.7的CPython. python为什么性能差: 当我们提到一门编程语言的 ...
- Python内存优化
实际项目中,pythoner更加关注的是Python的性能问题,之前也写过一篇文章<Python性能优化>介绍Python性能优化的一些方法.而本文,关注的是Python的内存优化,一般说 ...
- python 购物车小程序
python 购物车小程序 功能要求:1.启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表2.允许用户根据商品编号购买商品3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒4. ...
- Python内存优化:Profile,slots,compact dict
实际项目中,pythoner更加关注的是Python的性能问题,之前也写过一篇文章<Python性能优化>介绍Python性能优化的一些方法.而本文,关注的是Python的内存优化,一般说 ...
- Python性能优化(转)
分成两部分:代码优化和工具优化 原文:http://my.oschina.net/xianggao/blog/102600 阅读 Zen of Python,在Python解析器中输入 import ...
- python的优化机制与垃圾回收与gc模块
python属于动态语言,我们可以随意的创建和销毁变量,如果频繁的创建和销毁则会浪费cpu,那么python内部是如何优化的呢? python和其他很多高级语言一样,都自带垃圾回收机制,不用我们去维护 ...
- python购物车小案例
python购物车小案例# 案列描述:有一个小型水果店里面有水果(苹果:¥8/kg,香蕉:¥5/kg,芒果:¥15/kg,葡萄:¥12/kg),客户带了100元钱进店选购水果.# 1.客户输入相应序号 ...
- Python性能优化方案
Python性能优化方案 从编码方面入手,代码算法优化,如多重条件判断有限判断先决条件(可看 <改进python的91个建议>) 使用Cython (核心算法, 对性能要求较大的建议使用C ...
随机推荐
- Solr(五)Solr实现简单的类似百度搜索高亮功能-2代码
Solr高亮 一 在配置文件中,配置支持Ik分词器的Field 修改文件: cd /usr/local/tomcat/apache-tomcat-8.5.13/solr_home/Test/conf/ ...
- vue指令v-once示例解析
只渲染元素和组件一次.随后的重新渲染,元素/组件及其所有的子节点将被视为静态内容并跳过.这可以用于优化更新性能. <!-- 单个元素 --> <span v-once>This ...
- public static void main(string[] args)解释
这个问题困扰我好久了,今天就一查究竟,毕竟我好奇心比较重 1. why “public” 因为Java程序是通过jvm虚拟机调用的,所以main()函数要是想被调用,必须是public 2.why “ ...
- 函数&闭包
作用域链 闭包的理解 所谓"闭包",指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. 下面来看一个例子: function ...
- 前端到后台ThinkPHP开发整站(3)
继续我的这个项目的第三晚的开发了,时间比较少,今晚写的代码不多,今晚仍然是造轮子写一个公共的控制器和一个公共的JS.直接上代码吧! 以下是一个公共的控制器,后台控制器都继承于它,构造函数中进行验证当前 ...
- HBase集群安装部署
0x01 软件环境 OS: CentOS6.5 x64 java: jdk1.8.0_111 hadoop: hadoop-2.5.2 hbase: hbase-0.98.24 0x02 集群概况 I ...
- ECC椭圆曲线详解(有具体实例)
前言 ECC英文全称"Ellipse Curve Cryptography" 与传统的基于大质数因子分解困难性的加密方法不同,ECC通过椭圆曲线方程式的性质产生密钥 ECC164位 ...
- 如何输入EOF
很多线上笔试的编程题要求能循环处理多个case,需使用while(scanf("%s",tmp)!=EOF)语句.EOF表示文件结束符,但是在本机的编译环境中,如何在控制台输入EO ...
- CSS 中的rem,em,vh,vw一次说清楚
关于css中的长度单位,我们用的最多就是px,因为他简单直接.但是当一套方案匹配不同终端时,px就会显得过于生硬,不容易变通. 然而rem,em,vh,vw就可以有效的解决这一问题.让我们来看看这些东 ...
- iOS程序员的React Native开发工具集
本文整理了React Native iOS开发过程中有用的工具.服务.测试.库以及网站等. 工具 你可以选择不同的开发环境:DECO.EXPO或者你可以使用Nuclide+Atom,目前我使用EXPO ...