Python學習:8.小項目之登錄注冊驗證


簡介 

  本次項目登錄注冊驗證是對之前學習知識點的加深學習,這次項目的練習的知識點有函數、判斷語句、循環語句、文件操作等。

項目流程 

  運行代碼之后,輸出登錄或者注冊選項。

  當選擇登錄之后,輸入用戶名密碼,如果該用戶信息沒有注冊過,就輸出登錄失敗,如果該用戶信息已經注冊過,就顯示登錄成功。

  當選擇注冊之后,輸入用戶名密碼,如果該用戶信息沒有注冊過,就輸出注冊成功,如果該用戶信息已經注冊過,就顯示用戶名已經存在,注冊失敗。

代碼流程 

  運行代之后首先執行main()函數,mian()函數中接收用戶輸入的用戶名和密碼,用戶選擇登錄,就調用loing()函數,將用戶輸入的信息在和存放用戶信息的文件中的信息進行比對,如果有該用戶的信息就登錄成功,否則失敗,用戶選擇注冊,在接收到用戶輸入的用戶名密碼之后,調用register()函數,在這里將調用 user_exist()函數進行對用戶輸入的信息進行判斷,如用戶輸入的信息存在存放用戶信息的文件里,輸出注冊失敗,否則注冊成功。

  在login()和user_exist()函數中調用了錯誤處理函數。

錯誤處理函數介紹 

try:
    .....
except IOError:
    ......

try中的代碼執行沒有出現錯誤,就不再執行except中的代碼,如果try中的代碼出現錯誤,就執行except中的代碼。

代碼實現 

def login(username, password):
    """
    用於用戶名和密碼的驗證
    :param username:用戶名
    :param paaword:密碼
    :return:True,用戶驗證成功;False,用戶驗證失敗
    """
    try:
        f = open("users", "r", encoding="utf-8")
        for line in f:
            line = line.strip()  # 清除換行符
            # 無參數時移除兩側空格,換行符
            # 有參數時移除兩側指定的字符
            line_list = line.split("$")
            if line_list[0] == username and line_list[1] == password:
                # print("成功")
                return True
        return False
    except IOError:
        return False


def register(username, password):
    """
    注冊用戶
    1、打開文件
    2、用戶名$密碼
    :param username:用戶名
    :param password:密碼
    :return:True:注冊成功;
    """
    with open("users", "a", encoding="utf-8") as f:
        temp = "\n" + username + "$" + password
        f.write(temp)
        return True


def user_exist(username):
    """
    檢測用戶名是否存在
    :param username:要檢測的用戶名
    :return: True:用戶名存在;False:用戶名不存在
    """
    # 一行一行的去查找,如果用戶名存在,return True:False
    try:
        with open("users", "r", encoding="utf-8") as f:
            for line in f:
                line = line.strip()
                line_new = line.split("$")
                if line_new[0] == username:
                    return True
            return False
    except IOError:
        return False


def main():
    while True:
        print("歡迎登錄xxx系統")
        arg = input("1:登錄,2:注冊")

        if arg == "1":
            uer = input("請輸入用戶名:")
            pwd = input("請輸入密碼:")
            if login(uer, pwd):
                print("成功")
                break
            else:
                print("失敗")
        elif arg == "2":
            user = input("請輸入用戶名:")
            pwd = input("請輸入密碼:")
            is_exist = user_exist(user)
            if is_exist:
                print("用戶名已經存在,注冊失敗")
            else:
                if register(user, pwd):
                    print("注冊成功")
                    continue
                else:
                    print("注冊失敗")
        else:
            print("輸入錯誤,請重新輸入")


main()

 這次的項目僅僅使用了之前學習的部分知識,比較簡單的一個項目,之后會繼續加深學習。

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM