python else語句在迴圈中的運用

2021-10-07 19:44:11 字數 2470 閱讀 2848

​ 在學習python迴圈語句的時候,發現else竟然可以和迴圈語句使用,但是它卻與if中else語句的執行完全不同,有時候你真的感覺掉進這個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中的語句

# 迴圈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語句。

while迴圈

當對迴圈次數未知的時候,使用while迴圈再合適不過。當然也可以應用於迴圈次數已知的情況,但是有時會使**量增多

for迴圈

當對迴圈次數已知的情況下使用for迴圈,並且在迭代列表、元組、字串和字典的時候for迴圈顯得及其優美,也可以說for迴圈是為迭代元素量身定製的

​ 不管是while迴圈也好還是for迴圈也好,當與else一起使用的時候都是一樣的道理。當迴圈正常結束的時候,就會去執行else語句,若碰到break而提前結束,將不會執行else;當迴圈未能執行的時候,會自動執行else語句

Python else在for迴圈中的運用

一直以來,感覺else語句在for迴圈中沒有什麼用,但是在編寫 木桶排序 演算法時發現,else還是蠻有用的,特此記錄一下。number 11 while true try input list map int,input 請輸入乙個整數序列 split break except 錯誤的處理 pri...

python else語句和with語句

else還可以和while一起使用,只有while正常完成時,才進入else執行,如果迴圈其中有break語句,則不進入else執行 例如 求最大約數 else和異常語句一起使用 如果有異常,則不會進入else執行,否則else執行 try int abc except valueerror as ...

迴圈語句python Python 迴圈語句

sonnetoab勝於藍 優秀個人部落格 gra nnet qq.comoab勝於藍 優秀個人部落格oab勝於藍 優秀個人部落格 八皇后問題 迴圈遞迴法 oab勝於藍 優秀個人部落格 queen problem with recurison board size 8 def under attack...