product_list = [['Iphone7', 5800],
['Coffee', 30],
['疙瘩汤', 10],
['Python Book', 99],
['Bike', 199],
['ViVo X9', 2499],
]
# 定义一个空字典用于存放商品
shopping_cart = {}
# 定义一个空列表用于存放用户信息
current_userinfo = []
db_file = r'db.txt'
while True:
print('''
1 登录
2 注册
3 购物
''')
shopping = input("请选择你的操作:")
if shopping == '1':
over = True
count = 0
while over:
if count == 3:
print("错误次数过多退出")
break
username = input("请输入用户名:")
userpasswd = input("请输入密码:")
with open(db_file, 'r', encoding='utf-8') as user:
for line in user:
line = line.strip('\n')
user_info = line.split(',')
username_of_db = user_info[0]
pwd_of_db = user_info[1]
balance_of_db = int(user_info[2])
if username == username_of_db and userpasswd == pwd_of_db:
print("登录成功")
# 将用户名字和余额存入列表中
current_userinfo = [username_of_db, balance_of_db]
print('用户信息为:', current_userinfo)
over = False
break
else:
print('用户或密码错误')
count += 1
elif shopping == '2': #开始注册你的用户
username = input("请输入你的用户名:")
while True:
pwd1 = input("请输入你的密码:")
pwd2 = input("请在此输入密码:")
if pwd1 != pwd2:
print('两次输入的不一致,请重新输入')
else:
break
money = input("请输入你的余额:")
with open(db_file, 'a', encoding='utf-8') as f:
f.write('%s,%s,%s\n' % (username, pwd1, money))
elif shopping == '3': #开始选购
if len(current_userinfo)==0:
print("请登录。。。。。")
else:
print("登录成功,开始购物")
username_of_db=current_userinfo[0]
balance_of_db=current_userinfo[1]
print('尊敬的用户%s您的余额为%s祝您购物愉快'%(username_of_db,balance_of_db))
over=True
while over:
for index,product in enumerate(product_list):
print(index,product)
shopping=input("请输入商品编号,输入’q‘ 退出: ")
if shopping.isdigit():
shopping=int(shopping)
if shopping <0 or shopping>= len(product_list):continue
pname=product_list[shopping][0]
pprice=product_list[shopping][1]
if balance_of_db >pprice:
if pname in shopping_cart: #判断商品是否已经在购物车中
shopping_cart[pname]['count']+=1
else:
shopping_cart[pname]={'pprice':pprice,'count':1}
balance_of_db-=pprice # 扣钱
current_userinfo[1]=balance_of_db #更新用户余额
print("Added product" + pname + " into shopping_cart,\033[42;1myour current\033[0m balance " + str(balance_of_db))
else:
print("余额不足,商品总额是{price},你还差{lack_price}".format(price=pprice,lack_price=(pprice-balance_of_db)))
print(shopping_cart)
elif shopping =='q':
print('''
---------------------------------已购买商品列表---------------------------------
id 商品 数量 单价 总价
''')
total_cost=0
for y,key in enumerate(shopping_cart):
print('%22s%18s%18s%18s%18s' %(
y,
key,
shopping_cart[key]['count'],
shopping_cart[key]['pprice'],
shopping_cart[key]['pprice'] * shopping_cart[key]['count']
))
total_cost+=shopping_cart[key]['pprice'] * shopping_cart[key]['count']
print("""
您的总花费为:%s
您的余额为:%s
""" %(total_cost,balance_of_db))
while over:
inp=input("确认购买(yes/no): ")
if inp not in ['Y','y','N','n','yes','no']:continue
if inp in ['Y','y','yes']:
src_file=db_file
dst_filer=r'%s.swap' %db_file
with open(src_file,'r',encoding='uft-8') as read_f,\
open(dst_filer,'w',encoding='utf-8') as write_f:
for line in read_f:
if line.startswith(username_of_db):
l=line.strip('\n').split(',')
l[-1]=str(balance_of_db)
line=','.join(1)+'\n'
write_f.write(line)
os.remove(src_file)
os.rename(dst_filer,src_file)
print('购买成功,请耐心发货')
shopping_cart={}
current_userinfo={}
over=False
else:
print('非法操作')
else:
print('非法输入')