1. 程式人生 > 程式設計 >python else語句在迴圈中的運用詳解

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語句在迴圈中的運用詳解的文章就介紹到這了,更多相關python else迴圈運用內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!