10-13 驗證使用者
阿新 • • 發佈:2021-07-15
1. 專案
最後一個 remember_me.py 版本假設使用者要麼已輸入其使用者名稱,要麼是首次執行該程式。
我們應修改這個程式,以應對這樣的情形:當前和最後一次執行該程式的使用者並非同一個人。
為此,在 greet_user()中列印歡迎使用者回來的訊息前,先詢問他使用者名稱是否是對的。
如果不對,就呼叫 get_new_username()讓使用者輸入正確的使用者名稱。
2. 程式碼
import json def get_stored_username(): """如果儲存了使用者名稱,就獲取它""" filename = "username.json" try: with open(filename) as f_obj: username = json.load(f_obj) except FileNotFoundError: return None else: return username def get_new_username(): """提示使用者輸入使用者名稱""" username = input("What is your name? ") filename = 'username.json' with open(filename, 'w') as f_obj: json.dump(username, f_obj) return username def greet_user(): """問候使用者,並指出其名字""" username = get_stored_username() if username: flag = input(f"your name is {username}, yes or no? >") if flag == "yes": print("Welcome back, " + username + "!") elif flag == "no": username = get_new_username() print("We'll remember you when you come back, " + username + "!") else: print("input error!") else: username = get_stored_username() print("We'll remember you when you come back, " + username + "!") greet_user()
3. 執行結果