三级菜单
__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()