Python學習:8.小項目之登錄註冊驗證
阿新 • • 發佈:2018-06-16
break exc spa utf spl 代碼實現 put 簡介 pri
簡介
本次項目登錄註冊驗證是對之前學習知識點的加深學習,這次項目的練習的知識點有函數、判斷語句、循環語句、文件操作等。
項目流程
運行代碼之後,輸出登錄或者註冊選項。
當選擇登錄之後,輸入用戶名密碼,如果該用戶信息沒有註冊過,就輸出登錄失敗,如果該用戶信息已經註冊過,就顯示登錄成功。
當選擇註冊之後,輸入用戶名密碼,如果該用戶信息沒有註冊過,就輸出註冊成功,如果該用戶信息已經註冊過,就顯示用戶名已經存在,註冊失敗。
代碼流程
運行代之後首先執行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()
這次的項目僅僅使用了之前學習的部分知識,比較簡單的一個項目,之後會繼續加深學習。
Python學習:8.小項目之登錄註冊驗證