您好,登錄后才能下訂單哦!
Python3中怎么實現模擬登錄操作,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
模擬登錄_要求:
1. 用戶輸入賬號密碼進行登錄
2. 用戶信息保存在文件內
3. 用戶密碼輸入錯誤三次后鎖定用戶
邏輯圖:
代碼:
#!/usr/bin/env python3 # Author:Robert # --*-- coding: utf-8 --*-- count = 0 #記錄試錯次數,計數項賦初始值 load = True #完成功能后退出,賦初始值 file = open("用戶信息文件.txt",'r',encoding='utf-8') file_lock = open("鎖定用戶信息文件.txt",'r+',encoding='utf-8') line = eval(file.readline()) #將正確信息中的字符串轉換成字典(原字符串為字典格式) line_list = eval(file_lock.readline()) #將正確信息中的字符串轉換成列表(原字符串為列表格式) def out(): #定義重復代碼,目的是幫助跳出while循環并關閉已打開的文檔 global load load = False #賦值load,為了跳出while循環 file_lock.close() #關閉正確用戶信息文檔 file.close() #關閉鎖定用戶信息文檔 while load: #判斷是否已完成功能 name = input("請輸入用戶名:") password = input("請輸入密碼:") if name in line and name not in line_list: #判斷用戶名是否正確,是否已被鎖定 while count < 3: if password == line[name]: #判斷用戶名是否對應正確的密碼 print("您已成功登錄") out() #調用定義out方法 break else: #說明未輸入的正確的密碼 count +=1 msg_count = '第%s次密碼輸入錯誤\n'%(count) #提示輸入錯誤次數 print(msg_count) if count < 3: #小于三次錯誤的輸入,可以重新輸入 password = input("密碼錯誤,請重新輸入密碼:") #重新輸入密碼 elif count == 3: #判斷是否已輸錯三次 print("已輸錯3次,賬號已鎖定") line_list.append(name) #將已鎖定信息加入鎖定元組中 file_lock.seek(0) #輸入指針移到開頭,如果不移動會產生多個元組 file_lock.write(str(line_list)) #寫入鎖定信息 file_lock.tell() #獲取當前的輸入指針位置,如果不獲取會產生多個元組 out() break elif name in line_list: #判斷用戶名是否在已鎖定用戶名中 print("該用戶名已被鎖定") out() break else: #說明用戶名不在正確用戶名信息中 print("該用戶名不存在") out()
用戶信息文件.txt
{"name":"password","XiaoMing":"123456","Robert":"234567","Alex":"345678","haha":"123","hahage":"123","hahage2":"123","hahage3":"123"}
鎖定用戶信息文件.txt
['name']
關于Python3中怎么實現模擬登錄操作問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。