python else語句在循環(huán)中的運用詳解
在學(xué)習(xí)python循環(huán)語句的時候,發(fā)現(xiàn)else竟然可以和循環(huán)語句使用,但是它卻與if中else語句的運行完全不同,有時候你真的感覺掉進(jìn)這個else陷阱里了,完全不知道該怎么用,那么現(xiàn)在咱們一起去看看吧
一、循環(huán)_else示例
1、while_else的運用
# 定義外循環(huán)計數(shù)器 i = 1 # 循環(huán)1-10每個數(shù)字 while i <= 10: # 定義內(nèi)循環(huán)計數(shù)器 j = 1 # 循環(huán)1-5每個數(shù)字,或者說循環(huán)5次 while j <= 5: # 判斷1-10之間的數(shù)/2是否有余數(shù) if i % 2 == 0: # 沒有余數(shù)那么就跳出內(nèi)循環(huán),繼續(xù)外循環(huán) break # 修改內(nèi)循環(huán)計數(shù)器 j += 1 # 當(dāng)循環(huán)正常結(jié)束的時候執(zhí)行else else: print("小于") i += 1
輸出結(jié)果:
小于
小于
小于
小于
小于
(1)分析:為什么會輸出5個小于?
1、首先,要知道的是,break距離哪個循環(huán)最近,那么就作用于哪個循環(huán),上邊的是在內(nèi)循環(huán)中,那么就作用于內(nèi)循環(huán)。其次,內(nèi)循環(huán)在外循環(huán)中,那么內(nèi)循環(huán)對于外循環(huán)來說就是一條語句。python語言尤其注意于代碼格式,將外循環(huán)中將內(nèi)循環(huán)看作未一條語句,那么問題就非常簡單了。
2、其次else與那個循環(huán)對齊,那么這個else就屬于那個循環(huán),當(dāng)這個循環(huán)正常結(jié)束后就會執(zhí)行else中的語句,否則遇到break就會提前跳出循環(huán),那么就將無法執(zhí)行else中的語句
3、看代碼,外循環(huán)要循環(huán)10次,內(nèi)循環(huán)要循環(huán)5次,也就就是說外循環(huán)1次,內(nèi)循環(huán)就要循環(huán)5次。在內(nèi)循環(huán)中有一個條件,當(dāng) i % 2 == 0,那么就跳出循環(huán),1-10之間能被2整除的就是偶數(shù)字,那么當(dāng)i=2,4,6,8,10這5種情況的時候,就會跳出內(nèi)循環(huán),此刻else是不會執(zhí)行,那么執(zhí)行的5次else是i=奇數(shù)的時候,條件不成立,所以會正常結(jié)束內(nèi)循環(huán),最后執(zhí)行else中的語句。那么就也是說當(dāng)while循環(huán)正常結(jié)束的時候才會執(zhí)行else語句,若被break則將無法執(zhí)行
(2)分析:將內(nèi)循環(huán)計數(shù)器改為j = 6為什么會輸出10個小于?
由于內(nèi)循環(huán)條件不成立,無法進(jìn)入循環(huán)體,也就無法循環(huán),所以將無條件執(zhí)行else中的語句,那么也就是說當(dāng)條件不成立時,就會無條件執(zhí)行else中的語句
2、if_else的運用
# 循環(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語句 else: print("大于")
輸出結(jié)果:
大于
大于
大于
大于
大于
(1)分析:為什么會輸出5個大于?
首先要知道,不管是while循環(huán)還是for循環(huán),使用else都是一樣的道理,當(dāng)循環(huán)正常結(jié)束才會執(zhí)行else,否則將不會執(zhí)行else語句。
外循環(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)于沒有這個條件,而直接執(zhí)行else語句。那么也就是說,當(dāng)循環(huán)遇到break就會跳出循環(huán)而不執(zhí)行else,若未遇到則表明循環(huán)正常結(jié)束,要去執(zhí)行else語句。
for i in range(1,11): for j in range(1,1): if i % 2 == 0: break else: print("大于")
(2)分析:為什么會輸出10個大于?
同的道理,由于range(1,1)表明沒有循環(huán)次數(shù),那么for循環(huán)就無法執(zhí)行,所以會去執(zhí)行else語句。也就是說,當(dāng)循環(huán)未能執(zhí)行的時候,則會去執(zhí)行else語句。
3、while循環(huán)與for循環(huán)的適用場景?
while循環(huán) | 當(dāng)對循環(huán)次數(shù)未知的時候,使用while循環(huán)再合適不過。當(dāng)然也可以應(yīng)用于循環(huán)次數(shù)已知的情況,但是有時會使代碼量增多 |
---|---|
for循環(huán) | 當(dāng)對循環(huán)次數(shù)已知的情況下使用for循環(huán),并且在迭代列表、元組、字符串和字典的時候for循環(huán)顯得及其優(yōu)美,也可以說for循環(huán)是為迭代元素量身定制的 |
二、總結(jié)
不管是while循環(huán)也好還是for循環(huán)也好,當(dāng)與else一起使用的時候都是一樣的道理。當(dāng)循環(huán)正常結(jié)束的時候,就會去執(zhí)行else語句,若碰到break而提前結(jié)束,將不會執(zhí)行else;當(dāng)循環(huán)未能執(zhí)行的時候,會自動執(zhí)行else語句
到此這篇關(guān)于python else語句在循環(huán)中的運用詳解的文章就介紹到這了,更多相關(guān)python else循環(huán)運用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python try except else使用詳解
- 淺談對python中if、elif、else的誤解
- python中if及if-else如何使用
- python使用for...else跳出雙層嵌套循環(huán)的方法實例
- Python while循環(huán)使用else語句代碼實例
- 在python中利用try..except來代替if..else的用法
- Python循環(huán)中else,break和continue的用法實例詳解
- python for和else語句趣談
- Python列表解析配合if else的方法
- 詳解Python if-elif-else知識點
- Python中else的三種使用場景
相關(guān)文章
使用Python第三方庫xlrd讀取Excel中的數(shù)據(jù)的流程步驟
這篇文章主要給大家介紹了使用Python第三方庫xlrd讀取Excel中的數(shù)據(jù)的流程步驟,文中通過代碼示例給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-12-12python sys.stdin和sys.stdout的用法說明
這篇文章主要介紹了python sys.stdin和sys.stdout的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03Python用HBuilder創(chuàng)建交流社區(qū)APP
這篇文章主要講解Python使用HBuilder創(chuàng)建交流社區(qū)APP,使用HBuilder做一個簡單的社區(qū)瀏覽界面,下面文章附有詳細(xì)的代碼,需要的朋友可以參考一下2021-11-11解決90%的常見問題的8個python NumPy函數(shù)
這篇文章主要為大家介紹了解決90%的常見問題的8個python NumPy函數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06Python 用NumPy創(chuàng)建二維數(shù)組的案例
這篇文章主要介紹了Python 用NumPy創(chuàng)建二維數(shù)組的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03