您好,登錄后才能下訂單哦!
簡介
本次項(xiàng)目登錄注冊驗(yàn)證是對之前學(xué)習(xí)知識點(diǎn)的加深學(xué)習(xí),這次項(xiàng)目的練習(xí)的知識點(diǎn)有函數(shù)、判斷語句、循環(huán)語句、文件操作等。
項(xiàng)目流程
運(yùn)行代碼之后,輸出登錄或者注冊選項(xiàng)。
當(dāng)選擇登錄之后,輸入用戶名密碼,如果該用戶信息沒有注冊過,就輸出登錄失敗,如果該用戶信息已經(jīng)注冊過,就顯示登錄成功。
當(dāng)選擇注冊之后,輸入用戶名密碼,如果該用戶信息沒有注冊過,就輸出注冊成功,如果該用戶信息已經(jīng)注冊過,就顯示用戶名已經(jīng)存在,注冊失敗。
代碼流程
運(yùn)行代之后首先執(zhí)行main()函數(shù),mian()函數(shù)中接收用戶輸入的用戶名和密碼,用戶選擇登錄,就調(diào)用loing()函數(shù),將用戶輸入的信息在和存放用戶信息的文件中的信息進(jìn)行比對,如果有該用戶的信息就登錄成功,否則失敗,用戶選擇注冊,在接收到用戶輸入的用戶名密碼之后,調(diào)用register()函數(shù),在這里將調(diào)用 user_exist()函數(shù)進(jìn)行對用戶輸入的信息進(jìn)行判斷,如用戶輸入的信息存在存放用戶信息的文件里,輸出注冊失敗,否則注冊成功。
在login()和user_exist()函數(shù)中調(diào)用了錯(cuò)誤處理函數(shù)。
錯(cuò)誤處理函數(shù)介紹
try:
.....
except IOError:
......
ry中的代碼執(zhí)行沒有出現(xiàn)錯(cuò)誤,就不再執(zhí)行except中的代碼,如果try中的代碼出現(xiàn)錯(cuò)誤,就執(zhí)行except中的代碼。
代碼實(shí)現(xiàn)
def login(username, password): """ 用于用戶名和密碼的驗(yàn)證 :param username:用戶名 :param paaword:密碼 :return:True,用戶驗(yàn)證成功;False,用戶驗(yàn)證失敗 """ try: f = open("users", "r", encoding="utf-8") for line in f: line = line.strip() # 清除換行符 # 無參數(shù)時(shí)移除兩側(cè)空格,換行符 # 有參數(shù)時(shí)移除兩側(cè)指定的字符 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系統(tǒng)") 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("用戶名已經(jīng)存在,注冊失敗") else: if register(user, pwd): print("注冊成功") continue else: print("注冊失敗") else: print("輸入錯(cuò)誤,請重新輸入") main()
這次的項(xiàng)目僅僅使用了之前學(xué)習(xí)的部分知識,比較簡單的一個(gè)項(xiàng)目,之后會(huì)繼續(xù)加深學(xué)習(xí)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。