zoukankan      html  css  js  c++  java
  • python之商品操作小程序

    要求:写一个添加商品的程序,商品信息写入txt文件中,以二维字典形式比如:{‘小米’:{‘价格’:‘1999元’,‘数量’:10}}

        1、添加商品
    #商品名称
    #价格
    #数量
    2、查看商品
    3、删除商品
    #输入商品名称

    需求分析:

      1.因为文件是直接用字典存储的,可以完成字符串和字典的强制转换

      2.新建一个字典,把文件中的商品信息读出来以字符串形式,再把字符串强转到字典

      3.所有的操作都针对字典操作,并保持字典和文件永远信息【一致】

    def duqu():
    shangpin_dic = {}#商品字典
    shangpin_str= ''#商品字符串
    shangpin_file = open('shangpin.txt', 'w+')#商品文件
    for i in shangpin_file:#把文件中有的商品都写入字符串里
    shangpin_str = shangpin_str + i
    if shangpin_str != '':
    shangpin_dic = eval(shangpin_str)#字符串转换成字典
    return shangpin_dic
    def start():
    a=duqu()#把文件中的商品都拿到字典里,a现在就是所有商品的字典,之后的增、删、查都是直接操作字典
    while 1 > 0:
    xx = input('请输入你的选择:1、添加商品 2、查看商品 3、删除商品,4、退出 ')
    if xx == '1':
    add(a)#调用增加的方法,字典a在这里是实参,方法中的x是形参
    elif xx == '2':
    chakan(a)
    elif xx == '3':
    shanchu(a)
    elif xx == '4':
    print('再见')
    break
    else:
    print('你输入的不对')
    def chakan(x):
    if len(x) > 0:#查看字典中的元素大于0,至少有一个商品
    for k in x:
    print("商品名称:"+k+",价格:"+x.get(k).get('price')+",库存:"+x.get(k).get('stock'))#输出字典中的商品
    else:
    print("暂无商品")#字典中的元素不大于零,没有商品
    def shanchu(x):
    rm = input("请输入你要删除的商品名称: ")
    if x.get(rm,'-') == '-':
    print("您删除的商品不存在")
    else:
    x.pop(rm)
    copyToTxt(x)
    def add(x):#x为形参
    add = input("请按以下格式输入你要增加的商品(商品名称_价格_数量,例如:小米_1999元_4) ")
    adds = add.split("_")#输入的商品分割后的list,例如:['小米','1999元',4]
    if len(adds) != 3:#判断输入的格式,分割后不是三个元素的输入格式不正确
    print("输入的格式不正确")
    else:
    x[adds[0]]={'price':adds[1],'stock':adds[2]}#在字典内增加输入的商品信息
    copyToTxt(x)#写入文件

    def copyToTxt(x):
    f = open('shangpin.txt','w')
    f.write(str(x))
    f.close()
    print("操作成功")
    start()


  • 相关阅读:
    CF1174D Ehab and the Expected XOR Problem
    CF1083B The Fair Nut and Strings
    CF1088D Ehab and another another xor problem
    CF1168A Increasing by Modulo
    CF1166C A Tale of Two Lands
    CF1142A The Beatles
    CF1105D Kilani and the Game
    【uva11248】网络扩容
    【sam复习】用sam实现后缀排序
    【Educational Codeforces Round 19】
  • 原文地址:https://www.cnblogs.com/mpp0905/p/8280754.html
Copyright © 2011-2022 走看看