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))