python else語(yǔ)句在循環(huán)中的運(yùn)用詳解
在學(xué)習(xí)python循環(huán)語(yǔ)句的時(shí)候,發(fā)現(xiàn)else竟然可以和循環(huán)語(yǔ)句使用,但是它卻與if中else語(yǔ)句的運(yùn)行完全不同,有時(shí)候你真的感覺(jué)掉進(jìn)這個(gè)else陷阱里了,完全不知道該怎么用,那么現(xiàn)在咱們一起去看看吧
一、循環(huán)_else示例
1、while_else的運(yùn)用
# 定義外循環(huán)計(jì)數(shù)器i = 1# 循環(huán)1-10每個(gè)數(shù)字while i <= 10: # 定義內(nèi)循環(huán)計(jì)數(shù)器 j = 1 # 循環(huán)1-5每個(gè)數(shù)字,或者說(shuō)循環(huán)5次 while j <= 5: # 判斷1-10之間的數(shù)/2是否有余數(shù) if i % 2 == 0: # 沒(méi)有余數(shù)那么就跳出內(nèi)循環(huán),繼續(xù)外循環(huán) break # 修改內(nèi)循環(huán)計(jì)數(shù)器 j += 1 # 當(dāng)循環(huán)正常結(jié)束的時(shí)候執(zhí)行else else: print('小于') i += 1
輸出結(jié)果:小于小于小于小于小于
(1)分析:為什么會(huì)輸出5個(gè)小于?
1、首先,要知道的是,break距離哪個(gè)循環(huán)最近,那么就作用于哪個(gè)循環(huán),上邊的是在內(nèi)循環(huán)中,那么就作用于內(nèi)循環(huán)。其次,內(nèi)循環(huán)在外循環(huán)中,那么內(nèi)循環(huán)對(duì)于外循環(huán)來(lái)說(shuō)就是一條語(yǔ)句。python語(yǔ)言尤其注意于代碼格式,將外循環(huán)中將內(nèi)循環(huán)看作未一條語(yǔ)句,那么問(wèn)題就非常簡(jiǎn)單了。
2、其次else與那個(gè)循環(huán)對(duì)齊,那么這個(gè)else就屬于那個(gè)循環(huán),當(dāng)這個(gè)循環(huán)正常結(jié)束后就會(huì)執(zhí)行else中的語(yǔ)句,否則遇到break就會(huì)提前跳出循環(huán),那么就將無(wú)法執(zhí)行else中的語(yǔ)句
3、看代碼,外循環(huán)要循環(huán)10次,內(nèi)循環(huán)要循環(huán)5次,也就就是說(shuō)外循環(huán)1次,內(nèi)循環(huán)就要循環(huán)5次。在內(nèi)循環(huán)中有一個(gè)條件,當(dāng) i % 2 == 0,那么就跳出循環(huán),1-10之間能被2整除的就是偶數(shù)字,那么當(dāng)i=2,4,6,8,10這5種情況的時(shí)候,就會(huì)跳出內(nèi)循環(huán),此刻else是不會(huì)執(zhí)行,那么執(zhí)行的5次else是i=奇數(shù)的時(shí)候,條件不成立,所以會(huì)正常結(jié)束內(nèi)循環(huán),最后執(zhí)行else中的語(yǔ)句。那么就也是說(shuō)當(dāng)while循環(huán)正常結(jié)束的時(shí)候才會(huì)執(zhí)行else語(yǔ)句,若被break則將無(wú)法執(zhí)行
(2)分析:將內(nèi)循環(huán)計(jì)數(shù)器改為j = 6為什么會(huì)輸出10個(gè)小于?
由于內(nèi)循環(huán)條件不成立,無(wú)法進(jìn)入循環(huán)體,也就無(wú)法循環(huán),所以將無(wú)條件執(zhí)行else中的語(yǔ)句,那么也就是說(shuō)當(dāng)條件不成立時(shí),就會(huì)無(wú)條件執(zhí)行else中的語(yǔ)句
2、if_else的運(yùn)用
# 循環(huán)10次,拿到1-10之間的數(shù)字for i in range(1,11): # 循環(huán)5次,拿到1-5之間的數(shù)字 for j in range(1,6): # 判斷 i的值是否能被2整除 if i % 2 == 0: # 如果是,則跳出內(nèi)循環(huán) break # 當(dāng)循環(huán)正常結(jié)束則執(zhí)行else語(yǔ)句 else: print('大于')
輸出結(jié)果:大于大于大于大于大于
(1)分析:為什么會(huì)輸出5個(gè)大于?
首先要知道,不管是while循環(huán)還是for循環(huán),使用else都是一樣的道理,當(dāng)循環(huán)正常結(jié)束才會(huì)執(zhí)行else,否則將不會(huì)執(zhí)行else語(yǔ)句。
外循環(huán)循環(huán)10次,內(nèi)循環(huán)5次,外循環(huán)1次,內(nèi)循環(huán)5次。當(dāng)內(nèi)循環(huán)條件成立執(zhí)行break,將跳出內(nèi)循環(huán)執(zhí)行外循環(huán),當(dāng)條件不成立就相當(dāng)于沒(méi)有這個(gè)條件,而直接執(zhí)行else語(yǔ)句。那么也就是說(shuō),當(dāng)循環(huán)遇到break就會(huì)跳出循環(huán)而不執(zhí)行else,若未遇到則表明循環(huán)正常結(jié)束,要去執(zhí)行else語(yǔ)句。
for i in range(1,11): for j in range(1,1): if i % 2 == 0: break else: print('大于')
(2)分析:為什么會(huì)輸出10個(gè)大于?
同的道理,由于range(1,1)表明沒(méi)有循環(huán)次數(shù),那么for循環(huán)就無(wú)法執(zhí)行,所以會(huì)去執(zhí)行else語(yǔ)句。也就是說(shuō),當(dāng)循環(huán)未能執(zhí)行的時(shí)候,則會(huì)去執(zhí)行else語(yǔ)句。
3、while循環(huán)與for循環(huán)的適用場(chǎng)景?
while循環(huán) 當(dāng)對(duì)循環(huán)次數(shù)未知的時(shí)候,使用while循環(huán)再合適不過(guò)。當(dāng)然也可以應(yīng)用于循環(huán)次數(shù)已知的情況,但是有時(shí)會(huì)使代碼量增多 for循環(huán) 當(dāng)對(duì)循環(huán)次數(shù)已知的情況下使用for循環(huán),并且在迭代列表、元組、字符串和字典的時(shí)候for循環(huán)顯得及其優(yōu)美,也可以說(shuō)for循環(huán)是為迭代元素量身定制的
二、總結(jié)
不管是while循環(huán)也好還是for循環(huán)也好,當(dāng)與else一起使用的時(shí)候都是一樣的道理。當(dāng)循環(huán)正常結(jié)束的時(shí)候,就會(huì)去執(zhí)行else語(yǔ)句,若碰到break而提前結(jié)束,將不會(huì)執(zhí)行else;當(dāng)循環(huán)未能執(zhí)行的時(shí)候,會(huì)自動(dòng)執(zhí)行else語(yǔ)句
到此這篇關(guān)于python else語(yǔ)句在循環(huán)中的運(yùn)用詳解的文章就介紹到這了,更多相關(guān)python else循環(huán)運(yùn)用內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 前端從瀏覽器的渲染到性能優(yōu)化2. WML語(yǔ)言的基本情況3. xpath簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理4. 讀大數(shù)據(jù)量的XML文件的讀取問(wèn)題5. 詳解盒子端CSS動(dòng)畫(huà)性能提升6. css進(jìn)階學(xué)習(xí) 選擇符7. CSS Hack大全-教你如何區(qū)分出IE6-IE10、FireFox、Chrome、Opera8. 阿里前端開(kāi)發(fā)中的規(guī)范要求9. XHTML 1.0:標(biāo)記新的開(kāi)端10. HTML DOM setInterval和clearInterval方法案例詳解
