您好,登錄后才能下訂單哦!
Python3中怎么實(shí)現(xiàn)模擬登錄操作,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
模擬登錄_要求:
1. 用戶(hù)輸入賬號(hào)密碼進(jìn)行登錄
2. 用戶(hù)信息保存在文件內(nèi)
3. 用戶(hù)密碼輸入錯(cuò)誤三次后鎖定用戶(hù)
邏輯圖:
代碼:
#!/usr/bin/env python3 # Author:Robert # --*-- coding: utf-8 --*-- count = 0 #記錄試錯(cuò)次數(shù),計(jì)數(shù)項(xiàng)賦初始值 load = True #完成功能后退出,賦初始值 file = open("用戶(hù)信息文件.txt",'r',encoding='utf-8') file_lock = open("鎖定用戶(hù)信息文件.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)閉正確用戶(hù)信息文檔 file.close() #關(guān)閉鎖定用戶(hù)信息文檔 while load: #判斷是否已完成功能 name = input("請(qǐng)輸入用戶(hù)名:") password = input("請(qǐng)輸入密碼:") if name in line and name not in line_list: #判斷用戶(hù)名是否正確,是否已被鎖定 while count < 3: if password == line[name]: #判斷用戶(hù)名是否對(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: #判斷用戶(hù)名是否在已鎖定用戶(hù)名中 print("該用戶(hù)名已被鎖定") out() break else: #說(shuō)明用戶(hù)名不在正確用戶(hù)名信息中 print("該用戶(hù)名不存在") out()
用戶(hù)信息文件.txt
{"name":"password","XiaoMing":"123456","Robert":"234567","Alex":"345678","haha":"123","hahage":"123","hahage2":"123","hahage3":"123"}
鎖定用戶(hù)信息文件.txt
['name']
關(guān)于Python3中怎么實(shí)現(xiàn)模擬登錄操作問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。