zoukankan      html  css  js  c++  java
  • Python 购物车程序(文件版)

    '''
    购物车程序
    用户入口:
    1.商品信息存在文件里
    2.已购商品,余额记录

    商家入口:
    1.可以添加商品,修改商品价格
    '''

    filePath = "D:Python_workLpythonday2shoppinglist.txt"
    
    with open (filePath, "r") as f:
        filetext = f.readlines()
        k = len(filetext)
        # print(filetext)
    
    # 提取商品列表(将字符串以逗号分割写入列表)
    fileList  = []
    for i in range(k):
        c = filetext[i].split(",")
        fileList.append([c[0],int(c[1])])
    print(fileList)
    
    
    # ================
    # 用户入口
    # ================
    
    fileLen = len(fileList)
    salary = int(input("请输入您的工资: "))
    for j in range(fileLen):
        # 打印商品(编号,商品名称,价格)
        print(j, '.', fileList[j][0], ' ', fileList[j][1])
    
    shoppingList = []
    while True:
        selectNum = input("请选择商品编号:")
        if selectNum.isdigit():
            selectNum = int(selectNum)
            if 0 <= selectNum < fileLen:
                p_item = fileList[selectNum]
                if p_item[1] <= salary:
                    shoppingList.append(p_item)
                    salary -= p_item[1]
                    print("已添加 %s 商品到购物车,您的余额为:33[31;0m %s 33[0m" % (p_item, salary))
                else:
                    print("33[41;1m你的余额只剩[%s]啦,还买个毛线啊 33[0m" % salary)
                    for going in shoppingList:
                        print("您已购商品为: ", going)
                    print("您当前的余额为: ", salary)
                    break
            else:
                print("您选择的 [%s] 不存在,请重新选择 " % selectNum)
    
        elif selectNum == "q":
            print("---------shopping list---------")
            for going in shoppingList:
                print("您已购商品为: ", going)
            print("您当前的余额为: ", salary)
            exit()
        else:
            print("无效选项")
    
    
    # ================
    # 商家入口
    # ================
    
    
    goodskey = dict(fileList)
    print(goodskey)
    
    # 修改商品名称 & 修改价格 & 添加商品
    
    goodskey["Iphone11"] = "5999"
    goodskey.update({'Iphone12':goodskey.pop("Iphone11")})
    print(goodskey)
    with open(filePath, 'w+') as f:
        for key in goodskey:   # for key,value in goodskey.items(): 不建议这样写
            f.write('{0},{1}
    '.format(key,goodskey[key]))
    # 添加商品
    with open (filePath, "a+") as f:
        f.write("Python8,8800
    ")
    

      

     

      

  • 相关阅读:
    sql server 2005中的用户自定义函数
    sql去除读出来的字段中的空格
    分割字符串
    VS2008 安装失败(microsoft visual studio web 创作组件 安装失败)的解决方法
    SAXParserFactory之求解
    Sql中的decimal
    设置fileupload上传文件的大小
    通过正则表达式来判断字符串是否为数字组成的
    ERP,CRM,BI的定义
    英语基本句型
  • 原文地址:https://www.cnblogs.com/codecca/p/11843255.html
Copyright © 2011-2022 走看看