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)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python try except else使用詳解
- 淺談對(duì)python中if、elif、else的誤解
- python中if及if-else如何使用
- python使用for...else跳出雙層嵌套循環(huán)的方法實(shí)例
- Python while循環(huán)使用else語(yǔ)句代碼實(shí)例
- 在python中利用try..except來(lái)代替if..else的用法
- Python循環(huán)中else,break和continue的用法實(shí)例詳解
- python for和else語(yǔ)句趣談
- Python列表解析配合if else的方法
- 詳解Python if-elif-else知識(shí)點(diǎn)
- Python中else的三種使用場(chǎng)景
相關(guān)文章
Python設(shè)計(jì)模式之工廠模式簡(jiǎn)單示例
這篇文章主要介紹了Python設(shè)計(jì)模式之工廠模式,簡(jiǎn)單說(shuō)明了工廠模式的原理,并結(jié)合實(shí)例形式給出了Python實(shí)現(xiàn)工廠模式的具體操作技巧,需要的朋友可以參考下2018-01-01
使用Pycharm創(chuàng)建一個(gè)Django項(xiàng)目的超詳細(xì)圖文教程
Django是比較經(jīng)典的Python web框架,最近剛好在項(xiàng)目中用到了Django,所以下面這篇文章主要給大家介紹了關(guān)于使用Pycharm創(chuàng)建一個(gè)Django項(xiàng)目的超詳細(xì)圖文教程,文中介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
Python中的def __init__( )函數(shù)
這篇文章主要介紹了Python中的def __init__( )函數(shù),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-09-09
詳細(xì)解讀Python中解析XML數(shù)據(jù)的方法
這篇文章主要介紹了Python中解析XML數(shù)據(jù)的方法,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-10-10
python安裝whl包并解決依賴關(guān)系的實(shí)現(xiàn)
本文主要介紹了python安裝whl包并解決依賴關(guān)系的實(shí)現(xiàn),文中通過(guò)圖文示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
Python標(biāo)準(zhǔn)庫(kù)datetime之datetime模塊用法分析詳解
這篇文章主要介紹了Python標(biāo)準(zhǔn)庫(kù)datetime之datetime模塊用法分析詳解,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07
Python中動(dòng)態(tài)創(chuàng)建類實(shí)例的方法
在Java中我們可以通過(guò)反射來(lái)根據(jù)類名創(chuàng)建類實(shí)例,那么在Python我們?cè)趺磳?shí)現(xiàn)類似功能呢?其實(shí)在Python有一個(gè)builtin函數(shù)import,我們可以使用這個(gè)函數(shù)來(lái)在運(yùn)行時(shí)動(dòng)態(tài)加載一些模塊2017-03-03

