前面我們將多賬號(hào)放進(jìn)了use.txt文件里面。
這章講怎么講多賬號(hào)正常登入。
接著上章的代碼。
with open(r'G:\PythonProject\學(xué)習(xí)\學(xué)習(xí)文件\date\user.txt', mode='rt', encoding='utf-8') as f:
for line in f:
l = line.strip().split('----')
接下去我還是用接發(fā)復(fù)制來拿到username和password。
with open(r'G:\PythonProject\學(xué)習(xí)\學(xué)習(xí)文件\date\user.txt', mode='rt', encoding='utf-8') as f:
for line in f:
username, password = line.strip().split('----')
然后我們再和前面的單個(gè)賬號(hào)密碼驗(yàn)證來結(jié)合一下。
接受用戶的賬號(hào)密碼坑定還是要的。
input_username = input('請輸入你的賬號(hào)>>>').strip()
input_password = input('請輸入你的密碼>>>').strip()
with open(r'G:\PythonProject\學(xué)習(xí)\學(xué)習(xí)文件\date\user.txt', mode='rt', encoding='utf-8') as f:
for line in f:
username, password = line.strip().split('----')
然后這個(gè)for循環(huán)里面,每循環(huán)一次是不是就拿到了一個(gè)用戶的賬號(hào)密碼,所以每循環(huán)一次拿到一個(gè)賬號(hào)密碼之后,我們就要驗(yàn)證一次。
if input_username == username and input_password == password:
print('登入成功')
如果驗(yàn)證成功后,我們還要做一步操作,就是break。不然的話假設(shè)循環(huán)到第二行的賬號(hào)密碼的時(shí)候,就驗(yàn)證通過了,然后這個(gè)for循環(huán)還在繼續(xù)往后判斷。
if input_username == username and input_password == password:
print('登入成功')
break
然后什么時(shí)候告訴用戶賬號(hào)密碼輸入錯(cuò)了呢?肯定不是接著這個(gè)if寫else了。是等這個(gè)for循環(huán)結(jié)束之后仍然沒有匹配上賬號(hào)密碼,就告訴用戶賬號(hào)密碼錯(cuò)誤了。
我們在for循環(huán)外面用else來寫。
這樣else子代碼塊會(huì)在for循環(huán)正常結(jié)束的時(shí)候執(zhí)行,如果for循環(huán)中途被break打斷,就不會(huì)執(zhí)行else下面的子代碼塊。
放到這段代碼上看,意思就是如果一次都沒有遇到break,就說明用戶輸入的賬號(hào)密碼一次都沒有匹配上。
這樣代碼就正常結(jié)束,執(zhí)行外層的else子代碼塊。
input_username = input('請輸入你的賬號(hào)>>>').strip('\n')
input_password = input('請輸入你的密碼>>>').strip('\n')
with open(r'G:\PythonProject\學(xué)習(xí)\學(xué)習(xí)文件\date\user.txt', mode='rt', encoding='utf-8') as f:
for line in f:
username, password = line.strip().split('----')
if input_username == username and input_password == password:
print('登入成功')
break
else:
print('賬號(hào)或密碼錯(cuò)誤')
注意,這里的else是和for循環(huán)連用的,不要寫在if判斷的那層級去了。寫在if判斷同一層,那整個(gè)邏輯意思就不一樣了。
你講else寫在if同級當(dāng)你判斷第一行賬號(hào)密碼匹配不上,就直接打印‘賬號(hào)或密碼錯(cuò)誤’,不會(huì)匹配剩下的賬號(hào)密碼。
現(xiàn)在是我們自己寫程序來操作文件的,很多同學(xué)應(yīng)該都聽說過數(shù)據(jù)庫,其實(shí)數(shù)據(jù)庫就是對文件進(jìn)行增刪改查的一個(gè)軟件,,通過數(shù)據(jù)庫來存取數(shù)據(jù)效率會(huì)更高。
等學(xué)完數(shù)據(jù)庫之后,我們就不會(huì)自己來寫程序操作文件存取數(shù)據(jù)了。
而是在我們寫的程序和文件中間,加一個(gè)數(shù)據(jù)庫管理軟件,我們通過給數(shù)據(jù)庫管理軟件發(fā)指令,這個(gè)軟件就會(huì)幫我們?nèi)ゲ僮魑募?/p>
現(xiàn)在我們沒學(xué)數(shù)據(jù)庫,只能自己動(dòng)手寫程序造作文件了。
接著上面的代碼打印看看,分別輸入正確與錯(cuò)誤的賬號(hào)密碼。
未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » Python 多賬號(hào)登入案例