Python 中的 for...else 語句

Manav Narula 2021年10月2日
Python 中的 for...else 語句

在程式設計中,我們使用迴圈來迭代不同型別的物件。由於其簡單性,for 迴圈是使用最廣泛的迴圈之一。

Python 有一個與 for 迴圈相關的非常有趣的特性。它允許我們使用 else 語句和 for 迴圈來組合條件執行和迭代。else 關鍵字通常用於 if-else 語句中,當 if 條件返回 false 時,我們使用它來執行一些命令。

然而,當我們在 Python 中使用 for 迴圈時,情況並非如此。考慮到迴圈在任何迭代中都沒有遇到 break 語句,迴圈結束時,else 塊中的語句將根據完成子句執行。break 語句用於中斷迴圈。如果沒有遇到 break 語句,則在迴圈之後也會執行 else 塊語句。

如果遇到 continue 語句,則執行 else 語句。這是因為 continue 語句會強制進行下一次迭代。它不會打破迴圈。

請參考以下程式碼。

for i in range(3):
    if i > 5:
        break
else:
    print("Else Statements")

for i in range(3):
    if i > 1:
        print("Break")
        break
else:
    print("Else Statements")

for i in range(3):
    if i > 1:
        continue
else:
    print("Else Statements after Continue")

輸出:

Else Statements
Break
Else Statements after Continue

現在,for...else 的使用不被許多有經驗的程式設計師所接受,因為它可能會導致對 else 關鍵字的使用產生混淆。但是,它在 Python 中仍然有一些有用的應用程式。

例如,如果我們在列表中搜尋一個元素並希望知道它是否存在於列表中,我們可以使用它。以下程式碼片段實現了這一點。

a = 15
lst = [10, 5, 6, 8, 9, 7, 5, 11]
for i in lst:
    if i == 15:
        print("Found")
        break
else:
    print("Not Found Loop Over")

輸出:

Not Found Loop Over

else 關鍵字的使用不僅限於 for 迴圈,也可以與 Python 中的 while 迴圈一起使用。

作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相關文章 - Python Statement