Python登錄注冊(cè)驗(yàn)證功能實(shí)現(xiàn)
簡(jiǎn)介
本次項(xiàng)目登錄注冊(cè)驗(yàn)證是對(duì)之前學(xué)習(xí)知識(shí)點(diǎn)的加深學(xué)習(xí),這次項(xiàng)目的練習(xí)的知識(shí)點(diǎn)有函數(shù)、判斷語(yǔ)句、循環(huán)語(yǔ)句、文件操作等。
項(xiàng)目流程
運(yùn)行代碼之后,輸出登錄或者注冊(cè)選項(xiàng)。
當(dāng)選擇登錄之后,輸入用戶名密碼,如果該用戶信息沒有注冊(cè)過,就輸出登錄失敗,如果該用戶信息已經(jīng)注冊(cè)過,就顯示登錄成功。
當(dāng)選擇注冊(cè)之后,輸入用戶名密碼,如果該用戶信息沒有注冊(cè)過,就輸出注冊(cè)成功,如果該用戶信息已經(jīng)注冊(cè)過,就顯示用戶名已經(jīng)存在,注冊(cè)失敗。
代碼流程
運(yùn)行代之后首先執(zhí)行main()函數(shù),mian()函數(shù)中接收用戶輸入的用戶名和密碼,用戶選擇登錄,就調(diào)用loing()函數(shù),將用戶輸入的信息在和存放用戶信息的文件中的信息進(jìn)行比對(duì),如果有該用戶的信息就登錄成功,否則失敗,用戶選擇注冊(cè),在接收到用戶輸入的用戶名密碼之后,調(diào)用register()函數(shù),在這里將調(diào)用 user_exist()函數(shù)進(jìn)行對(duì)用戶輸入的信息進(jìn)行判斷,如用戶輸入的信息存在存放用戶信息的文件里,輸出注冊(cè)失敗,否則注冊(cè)成功。
在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):
"""
注冊(cè)用戶
1、打開文件
2、用戶名$密碼
:param username:用戶名
:param password:密碼
:return:True:注冊(cè)成功;
"""
with open("users", "a", encoding="utf-8") as f:
temp = "\n" + username + "$" + password
f.write(temp)
return True
def user_exist(username):
"""
檢測(cè)用戶名是否存在
:param username:要檢測(cè)的用戶名
: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:注冊(cè)")
if arg == "1":
uer = input("請(qǐng)輸入用戶名:")
pwd = input("請(qǐng)輸入密碼:")
if login(uer, pwd):
print("成功")
break
else:
print("失敗")
elif arg == "2":
user = input("請(qǐng)輸入用戶名:")
pwd = input("請(qǐng)輸入密碼:")
is_exist = user_exist(user)
if is_exist:
print("用戶名已經(jīng)存在,注冊(cè)失敗")
else:
if register(user, pwd):
print("注冊(cè)成功")
continue
else:
print("注冊(cè)失敗")
else:
print("輸入錯(cuò)誤,請(qǐng)重新輸入")
main()
這次的項(xiàng)目?jī)H僅使用了之前學(xué)習(xí)的部分知識(shí),比較簡(jiǎn)單的一個(gè)項(xiàng)目,之后會(huì)繼續(xù)加深學(xué)習(xí)。
- 用Python實(shí)現(xiàn)web端用戶登錄和注冊(cè)功能的教程
- Python實(shí)現(xiàn)注冊(cè)登錄系統(tǒng)
- Python實(shí)現(xiàn)注冊(cè)、登錄小程序功能
- Python制作簡(jiǎn)易注冊(cè)登錄系統(tǒng)
- Python +Selenium解決圖片驗(yàn)證碼登錄或注冊(cè)問題(推薦)
- python實(shí)現(xiàn)登錄與注冊(cè)系統(tǒng)
- Python3 Tkinkter + SQLite實(shí)現(xiàn)登錄和注冊(cè)界面
- python應(yīng)用文件讀取與登錄注冊(cè)功能
- Python?+?Tkinter連接本地MySQL數(shù)據(jù)庫(kù)簡(jiǎn)單實(shí)現(xiàn)注冊(cè)登錄
- Python實(shí)現(xiàn)用戶登錄注冊(cè)
相關(guān)文章
Python調(diào)用高德API實(shí)現(xiàn)批量地址轉(zhuǎn)經(jīng)緯度并寫入表格的功能
這篇文章主要介紹了Python調(diào)用高德API實(shí)現(xiàn)批量地址轉(zhuǎn)經(jīng)緯度并寫入表格的功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
python實(shí)現(xiàn)用戶登陸郵件通知的方法
這篇文章主要介紹了python實(shí)現(xiàn)用戶登陸郵件通知的方法,實(shí)例分析了Python計(jì)劃任務(wù)與郵件發(fā)送的使用技巧,需要的朋友可以參考下2015-07-07
LyScript實(shí)現(xiàn)Hook隱藏調(diào)試器的方法詳解
LyScript?插件集成的內(nèi)置API函數(shù)可靈活的實(shí)現(xiàn)繞過各類反調(diào)試保護(hù)機(jī)制。本文將運(yùn)用LyScript實(shí)現(xiàn)繞過大多數(shù)通用調(diào)試機(jī)制,實(shí)現(xiàn)隱藏調(diào)試器的目的,需要的可以參考一下2022-09-09
Pyecharts之特殊圖表的實(shí)現(xiàn)示例
本文主要介紹了Pyecharts之特殊圖表的實(shí)現(xiàn)示例,包括象形圖、水球圖和日歷圖的定制方法,具有一定的參考價(jià)值,感興趣的可以了解一下2025-01-01

