一、三個頁面:主頁面(home)、書店(book)、金融頁面(finance)
二、有兩種登錄方式:主頁面和書店頁面使用京東帳戶登錄,金融頁面使用微信帳戶登陸
二、輸入:1 ,進入主頁面,以此類推;輸入:2 ,進入書店頁面;輸入:3 ,進入金融頁面
三、進入頁面時檢測有沒有登錄,若是沒有調用登錄接口,使用帳號密碼登錄,在任何界面,只需登錄一次便可
四、帳戶信息保存在文件裏
五、在任意界面,輸入:Q ,退出程序
源代碼:微信
login_status = False # 登陸狀態 with open('帳戶信息', 'r') as f_read_self: jingdong = f_read_self.readline().strip() jingdong = eval(jingdong) # 內置函數eval()的做用是把一個字符串轉換爲字典 for n, m in jingdong.items(): JD_name = n JD_pwd = m with open('帳戶信息(微信)', 'r') as f_read_wechat: wechat = f_read_wechat.readline().strip() wechat = eval(wechat) for n, m in wechat.items(): wechat_name = n wechat_pwd = m def login(auth_type="jingdong"): # 判斷頁面類型,默認進去是京東登陸頁面 def page(dis_play): global login_status # 聲明全局變量 def login_type(): global login_status # 聲明全局變量 if not login_status: # 若是是未登錄狀態 if auth_type == "jingdong": username = input("Username:") passwd = input("Passwd:") if JD_name == username and JD_pwd == passwd: print("welcome ....") dis_play() # 登錄成功執行頁面函數,顯示內容 login_status = True # 改登錄狀態爲 True else: print("帳戶或密碼錯誤,請從新輸入") elif auth_type == "wechat": username = input("Username:") passwd = input("Passwd:") if wechat_name == username and wechat_pwd == passwd: print("welcome ....") dis_play() # 登錄成功執行頁面函數,顯示內容 login_status = True # 改登錄狀態爲 True else: print("帳戶或密碼錯誤") else: print("已登錄") return login_type # 返回login_type 的內存地址,用於指向函數對象 return page @login() def home(): # 主頁面 print("welcome to home page") @login() def book(): # 書店 print("welcome to home page") @login(auth_type="wechat") def finance(): # 金融 print("welcome to home page") while True: user_input = input('請輸入:\n1: [主頁] \n2: [書店] \n3: [金融] \nQ:退出') if user_input == '1': home() elif user_input == '2': book() elif user_input == '3': finance() elif user_input == 'Q': break
帳戶信息: {'Tom':'qwe123',}函數
帳戶信息(微信): {'Toms':'qwe123',}spa