1. 程式人生 > 其它 >10-13 驗證使用者

10-13 驗證使用者

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. 執行結果