1. 程式人生 > 其它 >多使用者註冊&登入函式封裝版

多使用者註冊&登入函式封裝版

要求:
1.基於檔案實現使用者註冊及登入功能
2.多使用者模式,註冊登入功能可迴圈執行
3.將功能封裝成函式


def login():
    """用於使用者登入的函式"""
    print('開始登入'.center(30, '*'))
    # 登入功能
    login_name = input('請輸入使用者名稱>>>:').strip()
    login_pwd = input('請輸入密碼>>>:').strip()
    with open(r'info.txt', 'r', encoding='utf8') as user_read:
        for line in user_read:
            line = line.strip('\n')
            if line.split('|')[0] == login_name and line.split('|')[1] == login_pwd:
                print('登入成功')
                return
        else:
            print('使用者名稱或密碼錯誤')
            return 1


def register():
    """用於使用者註冊的函式"""
    # 註冊功能
    print('開始註冊'.center(30, '*'))
    username = input('請輸入使用者名稱>>>:').strip()
    pwd = input('請輸入密碼>>>:').strip()
    # 判斷使用者是否已註冊
    with open(r'info.txt', 'r', encoding='utf8') as if_exist:
        for line in if_exist:
            if line.split('|')[0] == username:
                print('使用者已註冊')
                break
        else:
            with open(r'info.txt', 'a', encoding='utf8') as user_write:
                user_write.write('{}|{}\n'.format(username, pwd))
                print('使用者:{}註冊成功'.format(username))
                return
    return 1


# 構建功能列表
func_dict = {'1': ['註冊', register], '2': ['登入', login]}

while True:
    for i in range(1, len(func_dict) + 1):
        print(i, func_dict.get(str(i))[0])
    choice = input('請輸入序號以選擇功能(q/Q退出)>>>:').strip()
    if choice.upper() == 'Q':
        break

    while choice.isdigit() and choice in func_dict:
        res = func_dict[choice][1]()
        if res:
            continue
        else:
            break

    else:
        print('序號輸入有誤,請重新輸入')
        continue