這章我們講while的循環(huán)嵌套。我們先來看上章的代碼。
username = '110119'
password = '123456'
while True:
input_username = input('請輸入你的賬號(hào):')
input_password = input('請輸入你的密碼:')
if input_username == username and input_password:
print("登入成功")
break
else:
print('用戶名或密碼錯(cuò)誤,請注意格式大小寫')
這段代碼一開始讓用戶輸入賬號(hào)密碼,如果賬號(hào)密碼不對(duì),就會(huì)讓你一直輸入,我們先不考慮輸錯(cuò)的次數(shù)限制,限定次數(shù)改條件就好了,這個(gè)很簡單。
現(xiàn)在我們就讓它輸錯(cuò)了就一直輸,直到輸對(duì)了。輸入對(duì)了之后我們是不是就登入到了QQ界面了,這時(shí)候我們就可以進(jìn)行各種操作了,比如找你的男朋友、女朋友聊天,看他們的朋友圈等等。
那我是不是可以和女朋友聊完天之后再去看她的QQ空間,或者再執(zhí)行其它的操作,都是可以的。
也拒收說,登入成功之后,不應(yīng)該立馬結(jié)束循環(huán),而是應(yīng)該進(jìn)入另一個(gè)循環(huán)。這個(gè)循環(huán)就專門用來循環(huán)你的各種操作。
我可以這樣來寫代碼,在登入成功下面再寫一個(gè)while循環(huán),但是這樣寫有個(gè)問題,就是它會(huì)讓你一直輸入操作。也就是代碼運(yùn)行到第二個(gè)while就變成死循環(huán)了,只能輸入各種操作,沒有退出機(jī)制。
username='110119'
password='123456'
while True:
input_username=input('請輸入你的賬號(hào):')
input_password=input('請輸入你的密碼:')
if input_username==username and input_password:
print("登入成功")
while True:
action = input('請輸入你的操作')
print(f'正在看{action}')
break
else:
print('用戶名或密碼錯(cuò)誤,請注意格式大小寫')
里面的循環(huán)結(jié)束碧聊就運(yùn)行不到外層循環(huán)的break,導(dǎo)致外層的循環(huán)也結(jié)束不了,所以我們應(yīng)該寫個(gè)退出機(jī)制。比如我輸入個(gè)xxx,就會(huì)退出循環(huán)。我們來打印試試。
username = '110119'
password = '123456'
while True:
input_username = input('請輸入你的賬號(hào):')
input_password = input('請輸入你的密碼:')
if input_username == username and input_password:
print("登入成功")
while True:
action = input('請輸入你的操作')
if action == 'xxx':
break
print(f'正在看{action}')
break
else:
print('用戶名或密碼錯(cuò)誤,請注意格式大小寫')
如果當(dāng)你是使用break結(jié)束嵌套多層的while循環(huán),那每次層都要配一個(gè)break,這樣感覺上是有一點(diǎn)麻煩。我們前面還講了另一種結(jié)束循環(huán)的方法。
你可以把所有循環(huán)的條件都設(shè)置成同一個(gè)變量,然后只要這個(gè)變量已被改變,那所有循環(huán)的條件都不成立了,最后就會(huì)結(jié)束循環(huán)。
對(duì)比另一種結(jié)束循環(huán)的方法,還是break這種結(jié)束循環(huán)的方法比較常用。
未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » Python while循環(huán)嵌套