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)) #寫入鎖定信息
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)文章
Selenium+Python 自動(dòng)化操控登錄界面實(shí)例(有簡(jiǎn)單驗(yàn)證碼圖片校驗(yàn))
今天小編就為大家分享一篇Selenium+Python 自動(dòng)化操控登錄界面實(shí)例(有簡(jiǎn)單驗(yàn)證碼圖片校驗(yàn)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
用Python進(jìn)行屏幕錄制的實(shí)現(xiàn)
關(guān)于屏幕錄制這個(gè)功能需求,之前用過(guò)基于ffmpeg的Capture錄屏軟件,但是fps拉高以后會(huì)變得很卡,聲音也同樣出現(xiàn)卡頓,所以本文給大家介紹了用Python進(jìn)行屏幕錄制的實(shí)現(xiàn),感興趣的朋友可以參考下2024-04-04
Python+PyQt5實(shí)現(xiàn)自動(dòng)化任務(wù)管理
這篇文章主要為大家詳細(xì)介紹了如何通過(guò)PyQt5構(gòu)建圖形界面,使用Python實(shí)現(xiàn)了一個(gè)自動(dòng)化任務(wù)管理系統(tǒng),感興趣的小伙伴可以參考一下2025-04-04
Python3中編碼與解碼之Unicode與bytes的講解
今天小編就為大家分享一篇關(guān)于Python3中編碼與解碼之Unicode與bytes的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02
Python神經(jīng)網(wǎng)絡(luò)TensorFlow基于CNN卷積識(shí)別手寫數(shù)字
這篇文章主要介紹了Python神經(jīng)網(wǎng)絡(luò)TensorFlow基于CNN卷積識(shí)別手寫數(shù)字的實(shí)現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10
Python 多模式字符串搜索 Aho-Corasick詳解
Aho-Corasick 算法是一種用于精確或近似多模式字符串搜索的高效算法,本文給大家介紹Python 多模式字符串搜索 Aho-Corasick的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧2025-01-01
Python上級(jí)目錄文件導(dǎo)入的幾種方法(from.import)
有時(shí)候我們可能需要import另一個(gè)路徑下的python文件,下面這篇文章主要給大家介紹了關(guān)于Python上級(jí)目錄文件導(dǎo)入的幾種方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12

