Python文件操作模擬用戶登陸代碼實(shí)例
題目要求
1、輸入用戶名和密碼后回車
2、密碼輸入錯(cuò)誤,給出提示,并選擇是否重新輸入
3、密碼輸入錯(cuò)誤三次后,用戶被鎖定,無(wú)法繼續(xù)登陸
構(gòu)思
1、用戶輸入賬號(hào)和密碼后,需要判斷賬號(hào)是否存在
2、判斷賬號(hào)是否被禁用(錯(cuò)誤次數(shù)大于三次)
3、判斷賬號(hào)密碼是否正確
4、不同的錯(cuò)誤給出不同的提示
5、每輸入錯(cuò)一次,文檔中的錯(cuò)誤次數(shù)需要更新
6、如果三次以內(nèi)用戶登陸成功,密碼原來(lái)的錯(cuò)誤次數(shù)被重置
題目完成步驟
1、文檔的編寫
考慮到數(shù)據(jù)的存儲(chǔ)問題,決定將賬號(hào)、密碼、錯(cuò)誤次數(shù)進(jìn)行分行存儲(chǔ),三行為一組用戶信息
2、代碼編寫
go = Truewhile go: # 用來(lái)判斷賬號(hào)是否存在 no_existence_flag = True # 用來(lái)判斷是否輸入正確 no_flag = True # 用來(lái)判斷是否已經(jīng)被封 disable_flag = True # 用來(lái)判斷次數(shù)是否已經(jīng)超過限制 account = input('account:') password = input('password:') # 判斷賬號(hào)是否存在(自己寫入已存在用戶的賬號(hào)密碼) 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() # 判斷是否存在賬號(hào) 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()) # 判斷賬號(hào)是否被禁用 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() # 賬號(hào)不存在的報(bào)錯(cuò) 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 # 賬號(hào)被禁用的報(bào)錯(cuò) 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 # 賬號(hào)密碼錯(cuò)誤的報(bào)錯(cuò) 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()
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. python如何實(shí)現(xiàn)word批量轉(zhuǎn)HTML2. python excel和yaml文件的讀取封裝3. python3實(shí)現(xiàn)往mysql中插入datetime類型的數(shù)據(jù)4. python爬蟲實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊5. moment轉(zhuǎn)化時(shí)間戳出現(xiàn)Invalid Date的問題及解決6. Android中的緩存7. 關(guān)于 Android WebView 的內(nèi)存泄露問題8. java——Byte類/包裝類的使用說明9. Python中內(nèi)建模塊collections如何使用10. Spring boot整合連接池實(shí)現(xiàn)過程圖解
