Python實(shí)現(xiàn)用戶(hù)注冊(cè)登錄程序
本文實(shí)例為大家分享了Python實(shí)現(xiàn)用戶(hù)注冊(cè)登錄程序的具體代碼,供大家參考,具體內(nèi)容如下
要求:
1.支持多個(gè)用戶(hù)登錄(把已有的用戶(hù)名和密碼存放在一個(gè)文件中,鎖定的用戶(hù)名存放在另一個(gè)文件中)
2.輸入正確的用戶(hù)名和密碼,則登錄成功;密碼錯(cuò)誤,可以重新輸入密碼兩次;用戶(hù)名錯(cuò)誤,可以重新注冊(cè)用戶(hù)名,也可以重新輸入用戶(hù)名和密碼。
3.用戶(hù)名輸入正確,密碼錯(cuò)誤三次后,鎖定用戶(hù)名,退出;
4.輸入三次后,退出程序。
代碼如下:
user_pw=open('username_file','r+',encoding='utf_8') ?#打開(kāi)存放用戶(hù)名和密碼的文件 lock_user=open('lock_file','r+',encoding='utf-8') #打開(kāi)存放被鎖定用戶(hù)的文件 LU=[]#用來(lái)存放被鎖定用戶(hù)的用戶(hù)名 UP_user=[] #用來(lái)存放文件中已有的用戶(hù)名 UP_pw=[]#用來(lái)存放文件中已有用戶(hù)的密碼 in_user=[]#存放運(yùn)行過(guò)程中用戶(hù)輸入的用戶(hù)名,用來(lái)判斷用戶(hù)輸入某一個(gè)用戶(hù)名的次數(shù)是否超過(guò)3次 count=0 #計(jì)算用戶(hù)的登錄次數(shù) count1=0 #計(jì)算用戶(hù)輸入密碼的次數(shù) #讀取文件中存放的用戶(hù)名和密碼,并存放到列表UP_user和UP_pw中 for line in user_pw.readlines(): ? ? u,p=line.split()#把一行的字符串按空格分割成兩個(gè)字符串 ? ? UP_user.append(u) ? ? UP_pw.append(p) #讀取用戶(hù)名被鎖定的用戶(hù),存放到列表LU中 for line in lock_user.readlines(): ? ? l=line.strip() ? ? LU.append(l) #用戶(hù)輸入用戶(hù)名、密碼少于三次 while count<3: ? ? user=input("請(qǐng)輸入用戶(hù)名") ? ? in_user.append(user) ? ? pw=input("請(qǐng)輸入密碼") ? ? if user in LU:#判斷輸入的用戶(hù)名是否在被鎖定用戶(hù)中 ? ? ? ? print("用戶(hù)已鎖定") ? ? ? ? break ? ? if user in UP_user:#輸入的用戶(hù)名沒(méi)有被鎖定 ? ? ? ? i=UP_user.index(user)#找到輸入的用戶(hù)名在列表中的索引值 ? ? ? ? if pw==UP_pw[i]:#找到相同索引的密碼判斷和輸入的密碼是否一致 ? ? ? ? ? ? print("登錄成功") ? ? ? ? ? ? break ? ? ? ? else: ? ? ? ? ? ? print("密碼錯(cuò)誤") ? ? ? ? ? ? while count1<2:#用來(lái)判斷用戶(hù)輸入了幾次密碼(一共三次,最開(kāi)始已經(jīng)輸入了一次,所以還剩兩次) ? ? ? ? ? ? ? ? pw1=input("請(qǐng)重新輸入密碼") ? ? ? ? ? ? ? ? if pw1==UP_pw[i]: ? ? ? ? ? ? ? ? ? ? print("登錄成功") ? ? ? ? ? ? ? ? ? ? break ? ? ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? ? ? print("密碼錯(cuò)誤") ? ? ? ? ? ? ? ? count1+=1 ? ? ? ? ? ? count=3 ? ? ? ? ? ? break ? ? else: ? ? ? ? print("該用戶(hù)名未注冊(cè),注冊(cè)請(qǐng)輸入'yes',按任意鍵重新輸入用戶(hù)名") ? ? ? ? a=input() ? ? ? ? #注冊(cè) ? ? ? ? if a=='yes': ? ? ? ? ? ? print(user) ? ? ? ? ? ? print(pw) ? ? ? ? ? ? user_pw.write(user+' '+pw+'\n')#把用戶(hù)名密碼存放到文件中 ? ? ? ? ? ? UP_user.append(user)#把用戶(hù)名和密碼存放到數(shù)組中 ? ? ? ? ? ? UP_pw.append(pw) ? ? ? ? ? ? print('注冊(cè)成功') ? ? count+=1 if count==3: ? ? print("您輸入的次數(shù)太多") ? ? for iu in in_user: ? ? ? ? if in_user.count(iu)>=3: ? ? ? ? ? ? lock_user.write(iu+'\n')#把輸入超過(guò)三次的用戶(hù)名鎖定到文件中 ? ? ? ? ? ? print('用戶(hù)名'+iu+'已鎖定') ? ? ? ? ? ? break lock_user.closed user_pw.closed
測(cè)試結(jié)果:
(1)
(2)
(3)
(4)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Pytest測(cè)試報(bào)告工具Allure的高級(jí)用法
這篇文章介紹了Pytest測(cè)試報(bào)告工具Allure的高級(jí)用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07Python?watchdog靈活監(jiān)控文件和目錄的變化
Python?Watchdog是一個(gè)強(qiáng)大的Python庫(kù),它提供了簡(jiǎn)單而靈活的方式來(lái)監(jiān)控文件系統(tǒng)的變化,本文將詳細(xì)介紹Python?Watchdog的用法和功能,包括安裝、基本用法、事件處理以及實(shí)際應(yīng)用場(chǎng)景,并提供豐富的示例代碼2024-01-01表格梳理python內(nèi)置數(shù)學(xué)模塊math分析詳解
這篇文章主要為大家介紹了python內(nèi)置數(shù)學(xué)模塊math的分析詳解,文中通過(guò)表格梳理的方式以便讓大家在學(xué)習(xí)過(guò)程中一目望去清晰明了,有需要的朋友可以借鑒參考下2021-10-10Python實(shí)現(xiàn)深度遍歷和廣度遍歷的方法
今天小編就為大家分享一篇Python實(shí)現(xiàn)深度遍歷和廣度遍歷的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01python畫(huà)圖時(shí)linestyle,color和loc參數(shù)的設(shè)置方式
這篇文章主要介紹了python畫(huà)圖時(shí)linestyle,color和loc參數(shù)的設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11