python實(shí)現(xiàn)簡單登陸系統(tǒng)
新手,雖然比較簡單的東西,但是弄了我很久。
很多不完善的地方,比如鎖定用戶,同一用戶輸入錯三次密碼就會鎖定,但是如果在第二第三次換了用戶再輸入原來的用戶,則計(jì)數(shù)會重新計(jì)算。
另外不存在的用戶輸入密碼錯誤次數(shù)過多也會被鎖定,然后還能創(chuàng)建一個被鎖定的用戶,這個就不搞了,只要檢測一下是否存在用戶名就可以了。
暫時想到了解決辦法是在一個專用的文件里面增加一個專用的計(jì)數(shù)變量,舍棄blocklist這個文件,但是不懂怎么操作,先留著。
雖然python沒有像C一樣的main函數(shù)作為程序入口,姑且弄了一個,方便看懂
'''登陸系統(tǒng) 要求: 1、可以選擇創(chuàng)建新的用戶 2、可以登陸原有的用戶 3、輸入密碼錯誤三次后用戶則被鎖定''' flag=True #循環(huán)控制符 def createuser(): f=open('userlist.txt','r')#打開已存在用戶的文件,假設(shè)文件已經(jīng)存在 flag=True name=f.readlines() f.close() while flag: username=input('username:') flag2=False#用戶名已存在的標(biāo)記符 for line in name: if(username==line.split('*')[0]): flag2=True print("用戶名已存在,請重新輸入") if flag2!=True: f=open('userlist.txt','a')#創(chuàng)建新的用戶 f.write('\n'+username) f.write('*') password=input('password:') f.write(password) f.close() break main() def login():#登入函數(shù),輸入密碼錯誤三次則鎖定用戶 count=0#密碼錯誤計(jì)數(shù),3次則鎖定 f=open('userlist.txt','r') info=f.readlines() f.close() user=None#重復(fù)用戶標(biāo)記符 while flag: flag2=False f2=open('blocklist.txt', 'r') block_name=f2.readlines() f2.close() username=input('username:') if user==None:#user沒有使用過,則直接賦予輸入的用戶名 user=username elif user!=username:#如果下一次輸入的用戶名不一樣,則記錄上一次的用戶名,同時計(jì)數(shù)清零 user=username count=0; for line in block_name:#檢查用戶名是否被鎖定,鎖定則返回主菜單 if username==line.strip('\n'): print('該用戶已經(jīng)被鎖定,請聯(lián)系管理員') main() password=input('password:') for line in info: if(username==line.split('*')[0]and password==line.split('*')[1].strip('\n')): print('登入成功!') flag2=True if flag2==False: count+=1 print("用戶名或密碼錯誤,請重新輸入") if count==3:#錯誤三次,把用戶名添加到鎖定列表中 print('密碼錯誤次數(shù)過多,該用戶已被鎖定') f3=open('blocklist.txt','a') f3.write('\n'+username) f3.close() count=0#加入黑名單后重置計(jì)數(shù) main()#加入黑名單后退回主菜單 info=''' ------請輸入相關(guān)數(shù)字----- 1.創(chuàng)建新的用戶 2.登陸已有用戶 3.退出程序 ''' def main(): print(info) while flag: i=input() if i=='1': createuser() break elif i=='2': login() break elif i=='3': exit() else: print("請輸入正確的數(shù)字.") main()#程序入口
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python模擬新浪微博登陸功能(新浪微博爬蟲)
- python使用paramiko模塊實(shí)現(xiàn)ssh遠(yuǎn)程登陸上傳文件并執(zhí)行
- Python爬蟲利用cookie實(shí)現(xiàn)模擬登陸實(shí)例詳解
- python實(shí)現(xiàn)帶驗(yàn)證碼網(wǎng)站的自動登陸實(shí)現(xiàn)代碼
- python實(shí)現(xiàn)多線程暴力破解登陸路由器功能代碼分享
- python3.3教程之模擬百度登陸代碼分享
- Python實(shí)現(xiàn)SSH遠(yuǎn)程登陸,并執(zhí)行命令的方法(分享)
- 基于python的Tkinter編寫登陸注冊界面
- 利用selenium 3.7和python3添加cookie模擬登陸的實(shí)現(xiàn)
- python實(shí)現(xiàn)的登陸Discuz!論壇通用代碼分享
相關(guān)文章
Python實(shí)現(xiàn)的選擇排序算法原理與用法實(shí)例分析
這篇文章主要介紹了Python實(shí)現(xiàn)的選擇排序算法,簡單描述了選擇排序的原理,并結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)與應(yīng)用選擇排序的具體操作技巧,需要的朋友可以參考下2017-11-11Python學(xué)習(xí)之shell腳本的使用詳解
這篇文章主要為大家分析一個python庫–sh(系統(tǒng)調(diào)用),主要內(nèi)容包括其使用實(shí)例、應(yīng)用技巧、基本知識點(diǎn)總結(jié)和需要注意事項(xiàng),具有一定的參考價值,需要的朋友可以參考一下2023-04-04Python+KgCaptcha實(shí)現(xiàn)驗(yàn)證碼的開發(fā)詳解
驗(yàn)證碼通常是為了區(qū)分用戶是人還是計(jì)算機(jī),也可以防止解開密碼等惡意行為,而客戶端上多數(shù)會用在關(guān)鍵操作上?,F(xiàn)在驗(yàn)證碼的種類樣式也特別多,本文主要介紹了如何用Python和KgCaptcha做出驗(yàn)證碼功能,需要的可以參考一下2023-04-04基于Python實(shí)現(xiàn)條形碼圖片識別程序
這篇文章主要為大家詳細(xì)介紹了如何基于Python實(shí)現(xiàn)一個簡單的條形碼圖片識別程序,可以視頻圖片中的條形碼,感興趣的小伙伴可以跟隨小編學(xué)習(xí)一下2023-09-09淺談pytorch中為什么要用 zero_grad() 將梯度清零
這篇文章主要介紹了pytorch中為什么要用 zero_grad() 將梯度清零的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05python3 中的字符串(單引號、雙引號、三引號)以及字符串與數(shù)字的運(yùn)算
這篇文章主要介紹了python3 中的字符串(單引號、雙引號、三引號)以及字符串與數(shù)字的運(yùn)算,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Windows平臺Python連接sqlite3數(shù)據(jù)庫的方法分析
這篇文章主要介紹了Windows平臺Python連接sqlite3數(shù)據(jù)庫的方法,結(jié)合實(shí)例形式分析了Windows平臺安裝SQLite數(shù)據(jù)庫及創(chuàng)建、連接數(shù)據(jù)庫的實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-07-07