Python3模擬登錄操作實(shí)例分析
本文實(shí)例講述了Python3模擬登錄操作。分享給大家供大家參考,具體如下:
模擬登錄_要求:
1. 用戶輸入賬號(hào)密碼進(jìn)行登錄
2. 用戶信息保存在文件內(nèi)
3. 用戶密碼輸入錯(cuò)誤三次后鎖定用戶
邏輯圖:
代碼:
#!/usr/bin/env python3 # Author:Robert # --*-- coding: utf-8 --*-- count = 0 #記錄試錯(cuò)次數(shù),計(jì)數(shù)項(xiàng)賦初始值 load = True #完成功能后退出,賦初始值 file = open("用戶信息文件.txt",'r',encoding='utf-8') file_lock = open("鎖定用戶信息文件.txt",'r+',encoding='utf-8') line = eval(file.readline()) #將正確信息中的字符串轉(zhuǎn)換成字典(原字符串為字典格式) line_list = eval(file_lock.readline()) #將正確信息中的字符串轉(zhuǎn)換成列表(原字符串為列表格式) def out(): #定義重復(fù)代碼,目的是幫助跳出while循環(huán)并關(guān)閉已打開(kāi)的文檔 global load load = False #賦值load,為了跳出while循環(huán) file_lock.close() #關(guān)閉正確用戶信息文檔 file.close() #關(guān)閉鎖定用戶信息文檔 while load: #判斷是否已完成功能 name = input("請(qǐng)輸入用戶名:") password = input("請(qǐng)輸入密碼:") if name in line and name not in line_list: #判斷用戶名是否正確,是否已被鎖定 while count < 3: if password == line[name]: #判斷用戶名是否對(duì)應(yīng)正確的密碼 print("您已成功登錄") out() #調(diào)用定義out方法 break else: #說(shuō)明未輸入的正確的密碼 count +=1 msg_count = '第%s次密碼輸入錯(cuò)誤\n'%(count) #提示輸入錯(cuò)誤次數(shù) print(msg_count) if count < 3: #小于三次錯(cuò)誤的輸入,可以重新輸入 password = input("密碼錯(cuò)誤,請(qǐng)重新輸入密碼:") #重新輸入密碼 elif count == 3: #判斷是否已輸錯(cuò)三次 print("已輸錯(cuò)3次,賬號(hào)已鎖定") line_list.append(name) #將已鎖定信息加入鎖定元組中 file_lock.seek(0) #輸入指針移到開(kāi)頭,如果不移動(dòng)會(huì)產(chǎn)生多個(gè)元組 file_lock.write(str(line_list)) #寫(xiě)入鎖定信息 file_lock.tell() #獲取當(dāng)前的輸入指針位置,如果不獲取會(huì)產(chǎn)生多個(gè)元組 out() break elif name in line_list: #判斷用戶名是否在已鎖定用戶名中 print("該用戶名已被鎖定") out() break else: #說(shuō)明用戶名不在正確用戶名信息中 print("該用戶名不存在") out()
用戶信息文件.txt
{"name":"password","XiaoMing":"123456","Robert":"234567","Alex":"345678","haha":"123","hahage":"123","hahage2":"123","hahage3":"123"}
鎖定用戶信息文件.txt
['name']
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python使用urllib2模塊獲取gravatar頭像實(shí)例
python使用urllib2模塊獲取gravatar頭像的實(shí)例,大家參考使用吧2013-12-12python利用pandas分析學(xué)生期末成績(jī)實(shí)例代碼
pandas是數(shù)據(jù)分析師最常用的工具之一,這篇文章主要給大家介紹了關(guān)于python如何利用pandas分析學(xué)生期末成績(jī)的相關(guān)資料,文中給出了詳細(xì)的實(shí)現(xiàn)方法,需要的朋友可以參考下2021-07-07Python內(nèi)置random模塊生成隨機(jī)數(shù)的方法
這篇文章主要介紹了Python內(nèi)置random模塊生成隨機(jī)數(shù)的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05PyCharm設(shè)置Ipython交互環(huán)境和宏快捷鍵進(jìn)行數(shù)據(jù)分析圖文詳解
這篇文章主要介紹了PyCharm設(shè)置Ipython交互環(huán)境和宏快捷鍵進(jìn)行數(shù)據(jù)分析圖文詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04使用tensorflow 實(shí)現(xiàn)反向傳播求導(dǎo)
這篇文章主要介紹了使用tensorflow 實(shí)現(xiàn)反向傳播求導(dǎo),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05windows下Python實(shí)現(xiàn)將pdf文件轉(zhuǎn)化為png格式圖片的方法
這篇文章主要介紹了windows下Python實(shí)現(xiàn)將pdf文件轉(zhuǎn)化為png格式圖片的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python實(shí)現(xiàn)將pdf轉(zhuǎn)換為png格式的相關(guān)模塊、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-07-07Python中的split()、rsplit()、splitlines()的區(qū)別解析
Python提供了三種字符串分割的方法:split()、rsplit()和splitlines(),本文主要通過(guò)案例介紹這三種字符串分割函數(shù)的區(qū)別,感興趣的朋友一起看看吧2023-12-12