Python文件操作模擬用戶登陸代碼實(shí)例
題目要求
1、輸入用戶名和密碼后回車
2、密碼輸入錯誤,給出提示,并選擇是否重新輸入
3、密碼輸入錯誤三次后,用戶被鎖定,無法繼續(xù)登陸
構(gòu)思
1、用戶輸入賬號和密碼后,需要判斷賬號是否存在
2、判斷賬號是否被禁用(錯誤次數(shù)大于三次)
3、判斷賬號密碼是否正確
4、不同的錯誤給出不同的提示
5、每輸入錯一次,文檔中的錯誤次數(shù)需要更新
6、如果三次以內(nèi)用戶登陸成功,密碼原來的錯誤次數(shù)被重置
題目完成步驟
1、文檔的編寫
考慮到數(shù)據(jù)的存儲問題,決定將賬號、密碼、錯誤次數(shù)進(jìn)行分行存儲,三行為一組用戶信息
2、代碼編寫
go = Truewhile go: # 用來判斷賬號是否存在 no_existence_flag = True # 用來判斷是否輸入正確 no_flag = True # 用來判斷是否已經(jīng)被封 disable_flag = True # 用來判斷次數(shù)是否已經(jīng)超過限制 account = input('account:') password = input('password:') # 判斷賬號是否存在(自己寫入已存在用戶的賬號密碼) file = open('C:/Users/Lenovo/Desktop/user.txt','r') # 用于拼接文本內(nèi)容 file_data = '' while True: line = file.readline() if not line: break file_data += line line_content = line.strip() # 判斷是否存在賬號 if account == line_content: no_existence_flag = False true_password = file.readline() file_data += true_password true_password_content = true_password.strip() disable_flag_line = file.readline() disable_flag_num = int(disable_flag_line.strip()) # 判斷賬號是否被禁用 if disable_flag_num != 3:print('It is not disable!',disable_flag_num)disable_flag = False# 判斷密碼是否正確if password == true_password_content: no_flag = False print('Welcome in this system,{account}!'.format(account = account)) go = False disable_flag_line = disable_flag_line.replace(str(disable_flag_num),str(0)) file_data += disable_flag_lineelse: disable_flag_line = disable_flag_line.replace(str(disable_flag_num),str(disable_flag_num+1)) file_data += disable_flag_line else:file_data += file.readline() else: file_data += file.readline() file_data += file.readline() file.close() # 賬號不存在的報錯 if no_existence_flag: print('This account is not existence!') print('Do you want to try it again......') flag = input('Please input you think:') if flag == 'N': go = False continue # 賬號被禁用的報錯 if disable_flag: print('You account is disable,please go home by youself!') print('Do you want to try it again......') flag = input('Please input you think:') if flag == 'N': go = False continue # 賬號密碼錯誤的報錯 if no_flag: file = open('C:/Users/Lenovo/Desktop/user.txt','w') print(file_data) file.write(file_data) file.close() print('Your password is not right,please try it again!') print('Do you want to try it again......') flag = input('Please input you think:') if flag == 'N': go = False # 重置輸入次數(shù) else: file = open('C:/Users/Lenovo/Desktop/user.txt','w') print(file_data) file.write(file_data) file.close()
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. React+umi+typeScript創(chuàng)建項(xiàng)目的過程2. ASP.NET Core 5.0中的Host.CreateDefaultBuilder執(zhí)行過程解析3. SharePoint Server 2019新特性介紹4. ASP中常用的22個FSO文件操作函數(shù)整理5. 三個不常見的 HTML5 實(shí)用新特性簡介6. ASP調(diào)用WebService轉(zhuǎn)化成JSON數(shù)據(jù),附j(luò)son.min.asp7. .Net core 的熱插拔機(jī)制的深入探索及卸載問題求救指南8. 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁9. 讀大數(shù)據(jù)量的XML文件的讀取問題10. 解決ASP中http狀態(tài)跳轉(zhuǎn)返回錯誤頁的問題
