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--购物车优化的主要内容,如果未能解决你的问题,请参考以下文章

重构优化Python购物车

python--购物车优化

python购物车程序的简单程序优化版

购物车程序优化(python3.x)

python week2 购物车优化

3-2 优化购物车