基本要求:
用户入口
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--购物车优化的更多相关文章

  1. python购物车优化

    一.需求分析 拥有用户接口和商家接口 用户能够进行消费记录查询,充值,购物等功能,消费记录存储于数据库 商家可以进行商品的增删改等操作 二.程序流程图 程序大致流程图如下: 三.代码实现 本程序分成两 ...

  2. 简单的python购物车

                 这几天,一直在学python,跟着视频老师做了一个比较简单的python购物车,感觉不错,分享一下 products = [['Iphone8',6888],['MacPro ...

  3. python性能优化

      注意:本文除非特殊指明,”python“都是代表CPython,即C语言实现的标准python,且本文所讨论的是版本为2.7的CPython. python为什么性能差: 当我们提到一门编程语言的 ...

  4. Python内存优化

    实际项目中,pythoner更加关注的是Python的性能问题,之前也写过一篇文章<Python性能优化>介绍Python性能优化的一些方法.而本文,关注的是Python的内存优化,一般说 ...

  5. python 购物车小程序

    python 购物车小程序 功能要求:1.启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表2.允许用户根据商品编号购买商品3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒4. ...

  6. Python内存优化:Profile,slots,compact dict

    实际项目中,pythoner更加关注的是Python的性能问题,之前也写过一篇文章<Python性能优化>介绍Python性能优化的一些方法.而本文,关注的是Python的内存优化,一般说 ...

  7. Python性能优化(转)

    分成两部分:代码优化和工具优化 原文:http://my.oschina.net/xianggao/blog/102600 阅读 Zen of Python,在Python解析器中输入 import ...

  8. python的优化机制与垃圾回收与gc模块

    python属于动态语言,我们可以随意的创建和销毁变量,如果频繁的创建和销毁则会浪费cpu,那么python内部是如何优化的呢? python和其他很多高级语言一样,都自带垃圾回收机制,不用我们去维护 ...

  9. python购物车小案例

    python购物车小案例# 案列描述:有一个小型水果店里面有水果(苹果:¥8/kg,香蕉:¥5/kg,芒果:¥15/kg,葡萄:¥12/kg),客户带了100元钱进店选购水果.# 1.客户输入相应序号 ...

  10. Python性能优化方案

    Python性能优化方案 从编码方面入手,代码算法优化,如多重条件判断有限判断先决条件(可看 <改进python的91个建议>) 使用Cython (核心算法, 对性能要求较大的建议使用C ...

随机推荐

  1. 从零开始编写动态库文件Makefile,C++版

    这篇文章前,假设你已经看过<跟我一起写Makefile(一)>,陈皓写的那个. 对现有的一个C++动态库文件和调用程序,分别编写Makefile文件,从零开始,花了四天时间才搞清楚一半,生 ...

  2. 使用 Node.js 搭建一个 API 网关

    原文地址:Building an API Gateway using Node.js 外部客户端访问微服务架构中的服务时,服务端会对认证和传输有一些常见的要求.API 网关提供共享层来处理服务协议之间 ...

  3. web添加第三方应用,前端解决跨域问题的8种方案

    应用场景 web应用通过QQ登录授权实现第三方登录. 操作步骤 1. 注册成为QQ互联平台开发者,http://connect.qq.com/ 2. 准备一个可访问的域名,如dev.foo.com 3 ...

  4. 小A点菜 洛谷 p1164

    题目背景 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家--餐馆,很低端的那种. uim指着墙上的价目表(太低级了没有菜单),说:"随便点". 题目描述 不过ui ...

  5. TCP/IP小记

    --TCP/IP小记 -----------------2014/06/11 TCP的要求是:local_ip:local_port <==>remote_ip:remote_port这个 ...

  6. python之--------封装

    一.封装: 什么是封装呢?(封装不是单纯意义的隐藏,其实它还是可以查看的) 就是把一些不想让别人看的给隐藏起来了 封装数据:目的是保护隐私 功能封装:目的是隔离复杂度 如果用了私有的,在类的外部,无法 ...

  7. 关于C#的学习心得体会

    1·多看多写 多看网上成熟的demo,养成一个良好的代码编写习惯,将终生受益 2·多编多敲 看了代码,理解demo中的思路,灵活运用到自己的代码中,这样不仅了解了别人的代码,同时还了解了代码的执行过程 ...

  8. javascript DOM 笔记

    以下内容来自<javasript DOM 编程艺术>第二版 dom中三种重要的节点:元素节点.属性节点.文本节点. 几种节点的重要属性:nodeValue,nodeType(为数字1.2. ...

  9. 如何用QUnit为JS代码做单元测试

    非常好的入门文章: http://www.zhangxinxu.com/wordpress/2013/04/qunit-javascript-unit-test-%E5%8D%95%E5%85%83% ...

  10. Maven详解(四)------ 常用的Maven命令

    这章我们讲讲几个常用的 Maven 命令.由于执行命令是在工程的基础上来的,所以我们要先创建一个 Maven 工程,具体如何创建,在上一篇博客已经介绍了:http://www.cnblogs.com/ ...