您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關python else語句在循環中有什么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
在學習python循環語句的時候,發現else竟然可以和循環語句使用,但是它卻與if中else語句的運行完全不同,有時候你真的感覺掉進這個else陷阱里了,完全不知道該怎么用,那么現在咱們一起去看看吧
一、循環_else示例
1、while_else的運用
# 定義外循環計數器 i = 1 # 循環1-10每個數字 while i <= 10: # 定義內循環計數器 j = 1 # 循環1-5每個數字,或者說循環5次 while j <= 5: # 判斷1-10之間的數/2是否有余數 if i % 2 == 0: # 沒有余數那么就跳出內循環,繼續外循環 break # 修改內循環計數器 j += 1 # 當循環正常結束的時候執行else else: print("小于") i += 1
輸出結果:
小于
小于
小于
小于
小于
(1)分析:為什么會輸出5個小于?
​1、首先,要知道的是,break距離哪個循環最近,那么就作用于哪個循環,上邊的是在內循環中,那么就作用于內循環。其次,內循環在外循環中,那么內循環對于外循環來說就是一條語句。python語言尤其注意于代碼格式,將外循環中將內循環看作未一條語句,那么問題就非常簡單了。
2、其次else與那個循環對齊,那么這個else就屬于那個循環,當這個循環正常結束后就會執行else中的語句,否則遇到break就會提前跳出循環,那么就將無法執行else中的語句
​3、看代碼,外循環要循環10次,內循環要循環5次,也就就是說外循環1次,內循環就要循環5次。在內循環中有一個條件,當 i % 2 == 0,那么就跳出循環,1-10之間能被2整除的就是偶數字,那么當i=2,4,6,8,10這5種情況的時候,就會跳出內循環,此刻else是不會執行,那么執行的5次else是i=奇數的時候,條件不成立,所以會正常結束內循環,最后執行else中的語句。那么就也是說當while循環正常結束的時候才會執行else語句,若被break則將無法執行
(2)分析:將內循環計數器改為j = 6為什么會輸出10個小于?
由于內循環條件不成立,無法進入循環體,也就無法循環,所以將無條件執行else中的語句,那么也就是說當條件不成立時,就會無條件執行else中的語句
2、if_else的運用
# 循環10次,拿到1-10之間的數字 for i in range(1,11): # 循環5次,拿到1-5之間的數字 for j in range(1,6): # 判斷 i的值是否能被2整除 if i % 2 == 0: # 如果是,則跳出內循環 break # 當循環正常結束則執行else語句 else: print("大于")
輸出結果:
大于
大于
大于
大于
大于
(1)分析:為什么會輸出5個大于?
首先要知道,不管是while循環還是for循環,使用else都是一樣的道理,當循環正常結束才會執行else,否則將不會執行else語句。
外循環循環10次,內循環5次,外循環1次,內循環5次。當內循環條件成立執行break,將跳出內循環執行外循環,當條件不成立就相當于沒有這個條件,而直接執行else語句。那么也就是說,當循環遇到break就會跳出循環而不執行else,若未遇到則表明循環正常結束,要去執行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)表明沒有循環次數,那么for循環就無法執行,所以會去執行else語句。也就是說,當循環未能執行的時候,則會去執行else語句。
3、while循環與for循環的適用場景?
while循環 | 當對循環次數未知的時候,使用while循環再合適不過。當然也可以應用于循環次數已知的情況,但是有時會使代碼量增多 |
---|---|
for循環 | 當對循環次數已知的情況下使用for循環,并且在迭代列表、元組、字符串和字典的時候for循環顯得及其優美,也可以說for循環是為迭代元素量身定制的 |
二、總結
不管是while循環也好還是for循環也好,當與else一起使用的時候都是一樣的道理。當循環正常結束的時候,就會去執行else語句,若碰到break而提前結束,將不會執行else;當循環未能執行的時候,會自動執行else語句
關于python else語句在循環中有什么用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。