博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第二天习题
阅读量:5112 次
发布时间:2019-06-13

本文共 2859 字,大约阅读时间需要 9 分钟。

""" 优化: 1.购买商品信息存在文件里 2.可以添加商品,修改商品价格 已购商品,余额记录【用户金额只需要输入一次】 """ 思路:   1.用户余额,只输入一次后,下次进来就是上次保存的值,所以不能保存在内存中,并且每次退出程序的时候保存   2.购买的商品也需要保存下来   3.商家可以添加和修改商品价格,说明有两个入口,并且 商家的修改要时时反映到用户这边 简单的流程图:   

因为没有学习数据库,所以所有的存储数据都记录到文件中 #这里有个问题,就是用户在都买的时候,商家正在修改商品价格,所以商家正在修改这个商品价格的时候,需先下架,如果用户正在购买这个商品,则提示商品已下架不可购买:这里做不到这种实时同步,这里不考虑这种情况
# import collectionsimport osdef readFile(file,modle):    #判断文件是否存在    if os.path.exists(file) :        bf = open(file,modle)        res = bf.read()        bf.close()        return res    else :        return Nonedef saveFile(file,res):    gf = open(file, "w")    gf.write(res)    gf.close()def bussessFun():    # eval 讲类型的字符串转为类型    res = readFile("goods", "r")    goods = {}    if  res :        #将字典类型的字符串转为字典        goods = eval(res)    print(goods)    # print(res)    # print(goods)    #修改商品价格    # goods['iphoneX'] = 7000    # #添加个商品    # goods['watch'] = 5600    #这里做成商家输入    while True:        goodsname = input("input goodsname if you want to exit input q:")        if 'q' == goodsname :            break        price = int(input("input %s price :"%goodsname))    #商品存在,修改价格,商品不存在,保存商品        goods[goodsname] = price    #循环结束,保存商品    saveFile("goods",str(goods))def consumer():    res = readFile("goods", "r")    goods = {}    if res:        goods = eval(res)    if len(goods) == 0 :        print("has no goods")        exit()    #查询已买的商品    hasBuy = readFile("hasBuy","r")    if not hasBuy:        hasBuy = []    else:        #将列表类型的字符串转为列表        hasBuy = eval(hasBuy)    moneys = {}    moneyres = readFile("money", "r")    if  moneyres:        moneys = eval(moneyres)    if "money" not in moneys:    #展示所有的商品和价格,以及所在的编号,因为字典是无序的这里使用列表    #百度的方法,使用collections模块,变成有序字典    # z = collections.OrderedDict(goods)    # print(z)    #每次购买完后退出程序,需要将余额保存下来        money = int(input("input your money:"))    else:        money = moneys.get("money")    #这里使用字符串的方法转为列表    goods = str(goods).strip("{
").strip("}").split(",") # print(goods) # hasBuy = hasBuy.split(",") for i,v in enumerate(goods): print(i,v) while True: index = input("input you want to buy:,if 'q' exit:") if index.isdigit(): index = int(index) if index < len(goods) and index >= 0: #将买的商品和价格 goodsprice = goods[index] # print(goodsprice.split(":")[1]) price = int(goodsprice.split(":")[1]) if price < money : money -= price hasBuy.append(goodsprice) else: print("you don't have enough mmoney") elif 'q' == index: break else: pass #购买结束,将余额和购买的商品保存下来 moneys["money"] = money saveFile("money", str(moneys)) saveFile("hasBuy", str(hasBuy))consumer();
View Code

 

转载于:https://www.cnblogs.com/zylong1201/p/7994041.html

你可能感兴趣的文章
在Server上得到数据组装成HTML后导出到Excel。两种方法。
查看>>
浅谈项目需求变更管理
查看>>
经典算法系列一-快速排序
查看>>
设置java web工程中默认访问首页的几种方式
查看>>
ASP.NET MVC 拓展ViewResult实现word文档下载
查看>>
jQuery Mobile笔记
查看>>
8、RDD持久化
查看>>
第二次团队冲刺--2
查看>>
查询数据(后台到前台传递数据,显示数据)
查看>>
集群tomcat+apache配置文档
查看>>
VMware Tools安装
查看>>
2019.04.09 电商20 购物车的展示
查看>>
Linux上架设boost的安装及配置过程
查看>>
[转载]加密算法库Crypto——nodejs中间件系列
查看>>
zoj 2286 Sum of Divisors
查看>>
OO5~7次作业总结
查看>>
如何判断主机是大端还是小端(字节序)
查看>>
Centos7 日志查看工具
查看>>
使用Xshell密钥认证机制远程登录Linux
查看>>
BZOJ2459 : [BeiJing2011]神秘好人
查看>>