三级菜单

__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("恭喜登陆购物系统成功!!!"+"
")
            break

        else:
            count-=1
            print("你的用户名或密码有误,请重新输入"+"
"+ "33[1;35m  警告:你剩余的登陆次数还剩下%d次,超过即将被锁定33[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,"*")+"
"
        """
         商品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,"*")+"
"+consume_content)
                       else:
                           print("你当前无消费记录!请继续选择其它操作吧")
                           continue
              elif choose_goods =="Q":
                  print("
"+"你的余额还剩下33[1;35m %d 33[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("你的商品:33[5;31;40m%s33[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)+"
")
                  else:
                      print("33[5;31;40m系统检测到你账户余额已经不足,系统已退出,请回去继续搬砖吧!!!33[0m")
                      break
    else:
        print("系统正在升级维护。。。")
def loop_list(list_menu):  #循环列表函数
     for i,j  in  enumerate(list_menu):
        print( i,+":"+j )

if __name__ == '__main__':
  shopping()
原文地址:https://www.cnblogs.com/wjy123/p/9321378.html