python练习四 购物车优化

本文介绍了一个购物车系统的优化案例,包括用户登录功能的添加,商品信息的文件存储,购物记录的持久化存储,以及商品管理的增强。通过增加用户入口和商家入口,实现了更丰富的功能,如商品价格修改和商品添加。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python练习四

购物车的优化—添加用户登录功能

  • 增加用户入口
  • 商品信息存在文件里
  • 已购商品 余额记录 永久记录剩余余额
  • 增加商品入口
  • 可以添加商品 修改商品价格
# Author:Roach
# -*- coding: utf-8 -*-
import re
'''Open file usage
a = open('commodity','r+').readlines()
print(a )

b = open('commodity','r+')
data = [line.strip().split(":") for line in b.readlines()]
b.close()
print(data)'''

with open('commodity','r+') as h:
    comm_list = [line.strip().split(":") for line in h if line]
shopping_cart = []
print(comm_list)
print("1.用户入口\n2.商家入口")
user_id = input("请输入当前身份:")
if user_id == "1":
    balance = open('user_balance','r+').readline().strip()
    if balance.isdigit():
        print("当前余额为:{}".format(balance))
    else:
        balance = input("请输入账户余额:")
    balance = int(balance)
    while True:
        # for index,j in enumerate(comm_list):  # enumerate读取列表中的下标,for index,j 可以读取两个参数
        #     print(index,j)
        count = 0
        for i in comm_list[1:]:
            count += 1
            print("%s." % (count)+i[0],'\t\t',i[1] )
        shopping_nume = input("请输入需要购买的商品编号:")
        if shopping_nume.isdigit():
            shopping_nume = int(shopping_nume)
            if shopping_nume < len(comm_list) and shopping_nume >0:
                p_item = comm_list[shopping_nume]
                if balance > int(p_item[1]):
                    shopping_cart.append(p_item)
                    balance -= int(p_item[1])
                    print("已在购物车中添加商品%s,您的余额剩余\033[31;1m%s!\033[0m" % (p_item[0],balance))
                else:
                    print("\033[41;1m当前余额不足!!!剩余余额%s\033[0m" % balance)
            else:
                print("不存在此商品[%s]!请重新选择!" % shopping_nume)
        elif shopping_nume == 'q':
            write_balance = open('user_balance', 'w')
            write_balance.write(str(balance))
            write_balance.close()
            print("-------购买商品列表-------")
            for p in shopping_cart:
                print(p[0])
            print("你的余额为%s"% balance)
            print("-------退出商品列表-------")
            exit()
        else:
            print("invalid option")
elif user_id == "2":
    operating = input("1.修改商品价格\n2.添加商品\n请选择你的操作:")
    if operating == "1":
        count = 0
        for i in comm_list[1:]:
            count += 1
            print("%s." % (count)+i[0],'\t\t',i[1] )
        modify_commodity = int(input("请选择你要修改的商品编号:"))
        modify_price = input("请输入要修改的商品价格:")
        read_commodity = open('commodity', 'r')
        w_str=''
        for line in read_commodity.readlines():
            if re.search(comm_list[modify_commodity][0],line):
                line = "{name}:{price}".format(name=comm_list[modify_commodity][0],price=modify_price) + "\n"
            w_str += line
        write_commodity = open('commodity', 'w')
        write_commodity.write(w_str)
        read_commodity.close()
        write_commodity.close()
    elif operating == "2":
        add_commodity = input("请输入添加的商品名称:")
        add_price = input("请输入添加的商品价格:")
        with open('commodity','a') as f:
            f.write("{name}:{price}\n".format(name=add_commodity,price=add_price))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值