__author__ = 'WuJingyu'
import sys
goods = [
{"name": "苹果电脑", "price": 9999},
{"name": "iphoneX", "price": 5000},
{"name": "iWatch", "price": 1000},
{"name": "LV手提包", "price": 9999},
{"name": "Chanel", "price": 500}
]
account_balance=None #账户余额
goods_of_relevant={} #goods中的商品进行拆分成【苹果电脑:9999】形式的字典并存储
goods_of_card=[] #待添加的购物车列表
first_login=None #是否第一次登录标记
#账户登录校验模块,允许用户登录错误3次,超过自动退出并提示
def account_auth():
count=3
with open("account.txt","r") as file:
content=file.readline()
name=content[content.find("=")+1:content.index("passwd")].strip()
passwd=content[content.find("passwd=")+7:].strip()
while True:
user_name=input("请输入你的用户名:").strip()
user_passwd=input("请输入你的密码:").strip()
if user_name==name and user_passwd==passwd:
print("恭喜登陆购物系统成功!!!"+"\n")
break
else:
count-=1
print("你的用户名或密码有误,请重新输入"+"\n"+ "\033[1;35m 警告:你剩余的登陆次数还剩下%d次,超过即将被锁定\033[0m" %count)
if count==0:
print("你已经超过上限,系统退出!!!")
sys.exit()
else:
continue
#购物车模块
def shopping():
# print(account_auth())
if account_auth()==None:
flag=1
while not first_login:
with open("AccountBalance.txt","r") as file1: #打开账户余额文件并进行判断,即上次消费的余额什么
account_balance=file1.readline()
if account_balance!="":
employee_salary=account_balance
else:
employee_salary=input("请输入你的电子钱包金额:").strip() #如果之前没有消费过,请手动给一个自定义金额进行消费
if employee_salary.isdigit():
employee_salary=int(employee_salary)
break
else:
print("你输入的金额不合法,请重新输入!!!")
for i in range(len(goods)):
goods_of_relevant.update({goods[i]["name"]:goods[i]["price"]}) #拆分goods列表,并拼凑成商品和价格键值对形式,方便后续操作
if employee_salary < int(min(goods_of_relevant.values())): #对给定的钱包金额进行判断,如果小于商品列表的最小金额,并进行提示无法添加购物车
print("对不起,系统检测到你银行账户余额不能买得起任何一件商品,请充值或者请回去继续搬砖再来吧!!!")
sys.exit()
print("商品列表".center(50,"*")+"\n"
"""
商品1: 苹果电脑 | 价格: 9999,
商品2: iphoneX | 价格: 5000,
商品3: iWatch | 价格: 1000,
商品4: LV手提包 | 价格: 9999,
商品5: Chanel | 价格: 500,
""".center(100))
while not first_login:
#给定3个操作指令进行操作,循环添加购物车以及随时退出和随时查询消费记录
choose_goods=input("请输入你要购买的【商品名称】或者输入【Q】退出程序或【F】查询你的历史消费记录>>>>")
if choose_goods in goods_of_relevant.keys() or choose_goods in ["Q","F"] : #输入指令进行判断
if choose_goods=="F":
with open("ConsumeRecord.txt","r") as file3: #读取消费记录文件,打印详情
consume_content=file3.read()
if consume_content!="":
print("当前的消费记录如下".center(100,"*")+"\n"+consume_content)
else:
print("你当前无消费记录!请继续选择其它操作吧")
continue
elif choose_goods =="Q":
print("\n"+"你的余额还剩下\033[1;35m %d \033[0m元" %employee_salary)
sys.exit()
else:
if employee_salary >=int(goods_of_relevant[choose_goods]): #判断薪水是否大于所要添加商品的价格
goods_of_card.append(choose_goods) #添加所购买的商品至列表
employee_salary-=int(goods_of_relevant[choose_goods])
print("你的商品:\033[5;31;40m%s\033[0m已经成功添加到购物车,请继续购买!" %choose_goods)
with open("AccountBalance.txt","w") as file1: #存储薪水每次变动的信息
account_balance=file1.write(str(employee_salary))
with open("ConsumeRecord.txt","a+") as file2: #存储已添加商品和价格到文件,以便调用随时查看消费详情
file2.write("商品:"+str(choose_goods)+"金额:")
file2.write(str(employee_salary)+"\n")
else:
print("\033[5;31;40m系统检测到你账户余额已经不足,系统已退出,请回去继续搬砖吧!!!\033[0m")
break
else:
print("系统正在升级维护。。。")
def loop_list(list_menu): #循环列表函数
for i,j in enumerate(list_menu):
print( i,+":"+j )
if __name__ == '__main__':
shopping()