Python文件操作模擬用戶登陸代碼實(shí)例
題目要求
1、輸入用戶名和密碼后回車
2、密碼輸入錯(cuò)誤,給出提示,并選擇是否重新輸入
3、密碼輸入錯(cuò)誤三次后,用戶被鎖定,無法繼續(xù)登陸
構(gòu)思
1、用戶輸入賬號和密碼后,需要判斷賬號是否存在
2、判斷賬號是否被禁用(錯(cuò)誤次數(shù)大于三次)
3、判斷賬號密碼是否正確
4、不同的錯(cuò)誤給出不同的提示
5、每輸入錯(cuò)一次,文檔中的錯(cuò)誤次數(shù)需要更新
6、如果三次以內(nèi)用戶登陸成功,密碼原來的錯(cuò)誤次數(shù)被重置
題目完成步驟
1、文檔的編寫
考慮到數(shù)據(jù)的存儲問題,決定將賬號、密碼、錯(cuò)誤次數(shù)進(jìn)行分行存儲,三行為一組用戶信息

2、代碼編寫
go = True
while 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_line
else:
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()
# 賬號不存在的報(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
# 賬號被禁用的報(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
# 賬號密碼錯(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()
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python Json數(shù)據(jù)文件操作原理解析
- python3+selenium獲取頁面加載的所有靜態(tài)資源文件鏈接操作
- Python3操作YAML文件格式方法解析
- Python3操作讀寫CSV文件使用包過程解析
- Python讀寫操作csv和excle文件代碼實(shí)例
- python檢查目錄文件權(quán)限并修改目錄文件權(quán)限的操作
- 如何使用Python的Requests包實(shí)現(xiàn)模擬登陸
- 利用selenium 3.7和python3添加cookie模擬登陸的實(shí)現(xiàn)
- Python爬蟲利用cookie實(shí)現(xiàn)模擬登陸實(shí)例詳解
相關(guān)文章
Cpython3.9源碼解析python中的大小整數(shù)
這篇文章主要介紹了Cpython3.9源碼解析python中的大小整數(shù),在CPython中,小整數(shù)對象池是一種優(yōu)化機(jī)制,用于減少對常用小整數(shù)的內(nèi)存分配和銷毀開銷,需要的朋友可以參考下2023-04-04
Python中pinyin庫實(shí)現(xiàn)漢字轉(zhuǎn)換為拼音
python-pinyin是一個(gè)用于漢字轉(zhuǎn)拼音的Python庫,支持多音字、多種拼音風(fēng)格和自定義詞典,本文就來介紹一下Python中pinyin庫實(shí)現(xiàn)漢字轉(zhuǎn)換為拼音,感興趣的可以了解一下2025-01-01
利用Django內(nèi)置的認(rèn)證視圖實(shí)現(xiàn)用戶密碼重置功能詳解
這篇文章主要給大家介紹了關(guān)于利用Django內(nèi)置的認(rèn)證視圖實(shí)現(xiàn)用戶密碼重置功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11
python 字典item與iteritems的區(qū)別詳解
這篇文章主要介紹了python 字典item與iteritems的區(qū)別詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
pytorch獲取模型某一層參數(shù)名及參數(shù)值方式
今天小編就為大家分享一篇pytorch獲取模型某一層參數(shù)名及參數(shù)值方式,具有很好的價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
一文詳解如何實(shí)現(xiàn)PyTorch模型編譯
這篇文章主要為大家介紹了如何實(shí)現(xiàn)PyTorch?模型編譯詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Python使用Pandas對比兩列數(shù)據(jù)取最大值的五種方法
本文主要介紹使用 Pandas 對比兩列數(shù)據(jù)取最大值的五種方法,包括使用 max 方法、apply 方法結(jié)合 lambda 函數(shù)、函數(shù)、clip 方法、where 方法結(jié)合條件賦值,并通過案例進(jìn)行詳細(xì)說明,需要的朋友可以參考下2025-02-02

