#!/usr/bin/env python
#Author:Li QW
'''
程序需求:
1、启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表
2、允许用户根据商品编号购买商品
3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
4、可随时退出,退出时,打印已购买商品和余额
5、在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示
6、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买(未实现)
7、允许查询之前的消费记录
流程图可供参考


import sys
product_list=[
('Iphone',7000),
('Watch',333),
('Water',10),
('coffer',54),
('Xiaomi',2490),
]
f=open('user.txt','r')
user_lis=f.read()
f.close()
user_info=user_lis.split("#")
user_dict={}
salary=10000
sa=[]
show_shopping_log=[]
add_cart=[]
for item in user_info:
item_list=item.split(":")
user_dict[item_list[0]]=item_list[-1]
print(user_dict)
while True:
print("输入1:用户注册,输入2:老用户登录,输入q退出")
login_num=input("请选择: ")
if login_num.isdigit():
login_num=int(login_num)
if login_num==1:
while True:
user_1=input("输入注册用户名:")
if user_1 in user_dict:
print("用户已存在,请重新注册")
continue
else:
pass_1=input("请设置密码:")
f=open('user.txt','a+')
f.write("#%s:%s"%(user_1,pass_1))
f.close()
a1="恭喜,注册成功"
a11=a1.center(20,"-")
print(a11)
break
elif login_num==2:
while True:
with open('user.txt','r') as f:
user_lis2=f.read()
user_info2=user_lis2.split("#")
user_dict1={}
for item1 in user_info2:
item_list1 = item1.split(":")
user_dict1[item_list1[0]] = item_list1[-1]
print(user_dict1)
user_2=input("输入用户名登录:")
if user_2 in user_dict1:
pass_2=input("输入密码:")
if pass_2 == user_dict[user_2]:
a2="登录成功,欢迎进入"
a22=a2.center(20,'-')
print(a22)
while True:
print("选择a购物/选择b查询余额/选择c充值/选择q退出")
print("------------------------------------------------")
choice_1=str(input("根据提示选择模式>>>"))
if choice_1 =="a":
while True:
for index,t in enumerate(product_list):
print(index,t)
print("------------------------------")
print("选择a查询购物车、选择b返回、q退出")
user_choice1=input("选择购买的商品序号或进入其它菜单>>>>>")
if user_choice1.isdigit():
user_choice1=int(user_choice1)
if 0<=user_choice1<len(product_list):
p_item = product_list[user_choice1]
print(p_item)
if p_item[1] <=salary:
print("您已购买商品")
salary -= p_item[1]
add_cart.append(p_item)
show_shopping_log=add_cart.copy()
print("您已购买\033[31;1m{}\033[0m,余额还剩\033[31;1m{}\033[0m".format(p_item,salary))
continue
else:
print('----------已购商品---------')
print("-----退出a购物模式------")
print(show_shopping_log)
break
else:
print("----------------------------")
print("您输入的商品不存在,请重新购买")
elif user_choice1=="a":
print("-----购物车------")
print("已购买",show_shopping_log)
elif user_choice1 == 'b':
print(" ")
print('返回-----已购买商品如下')
print(add_cart)
break
elif user_choice1=='q':
sys.exit()
elif choice_1=="b":
print("-----还剩\033[31;1m{}\033[0m-----".format(salary))
continue
elif choice_1=="c":
while True:
print("您的余额不足,是否充值。(充值1/返回b)")
salary_11 = input("请确认是否充值:")
if salary_11.isdigit():
salary_11 = int(salary_11)
if salary_11 == 1:
print("------输入充值金额-------")
salary_22 = int(input("充值>>>"))
salary += salary_22
print("充值完成后,还剩\033[31;1m{}\033[0m".format(salary))
continue
elif salary_11=="b":
break
elif choice_1=="q":
sys.exit()
else:
a3="密码错误,请重新输入"
print(a3.ljust(13,"!"))
continue
else:
a4="用户不存在,请重新输入"
print(a4.ljust(14,'!'))
continue
elif login_num=='q':
sys.exit()
本文转自白羊IT51CTO博客,原文链接:http://blog.51cto.com/000011211684/2049545,如需转载请自行联系原作者