python--购物车优化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python--购物车优化相关的知识,希望对你有一定的参考价值。
基本要求:
用户入口
1、商品信息存在文件里
2、已购商品、余额记录,长期保存, 即第一次启动是需要输入预算的,以后就拿剩下的钱买东西
商家入口
1、可以添加商品,删除商品,修改商品价格
2、按q可以退出
实现:
1、用到list和dic
2、if判断 while和for循环
3、用文件记录商品信息和购物记录
‘‘‘ 购物车 用户入口 1、商品信息存在文件里 2、已购商品、余额记录,长期保存, 即第一次启动是需要输入预算的,以后就拿剩下的钱买东西 商家入口 1、可以添加商品,修改商品价格 按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(" ")[0].strip()) print(cartdata.split(" ")[0]) budget=cartdata.split(" ")[1] 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(" ")[0].strip()] = data.split(" ")[1].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(" ")[0].strip()] = data.split(" ")[1].strip() print(data.split(" ")[0].strip(), data.split(" ")[1].strip()) data = fd.readline() fd.close() operation = input("请输入您要做的操作:1表示增加商品、2表示删除商品、3表示修改商品价格、q表示退出程序: ") if operation==‘1‘: fd = open(productfile, ‘a‘, encoding=‘utf-8‘) string=input("请输入要添加的商品及价格,用空格分隔:") key=string.split(" ")[0].strip() value=string.split(" ")[1].strip() if key not in datadic: fd.write(string+‘\n‘) datadic[key]=value else: print("已存在该商品,不能添加") fd.close() elif operation==‘2‘: 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==‘3‘: string=input("请输入要修改的商品名称和价钱,用空格分隔:") k=string.split(" ")[0] v=string.split(" ")[1] 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--购物车优化的主要内容,如果未能解决你的问题,请参考以下文章