Python是今天最广泛使用的语言之一。与几乎所有其他编程语言一样,Python具有循环结构。像for循环和while循环这样的Python循环允许开发人员迭代集合或基于各种条件。
在本教程中,您将学习如何创建和使用每种类型的Python循环,以及如何使用break
、pass
和continue
Python语句来控制循环。
让我们开始吧!
先决条件
本帖将是一篇逐步教程。如果您想一起学习,请确保已安装Python v3.6或更高版本。本教程将使用Windows 10上的Python v3.9.2。
理解可迭代的Python构造
在您开始学习循环之前,您必须了解Python可迭代概念。循环处理诸如列表、元组和字典之类的元素集合。每个构造都包含多个元素,您可以“迭代”。因此,每个构造都是一个可迭代对象,循环可以逐个处理其中的元素。
當你聽到有人談論可迭代的事物時,知道這是一個你可以使用迴圈讀取該集合內每個物件的元素。
Python 的 For 迴圈
讓我們首先從學習 for 迴圈開始。for 迴圈重複執行由可迭代表達式控制的語句或語句塊。換句話說,它們為集合內的每個項目執行代碼。
For 迴圈和字串
例如,也許你有一個可迭代的項目,比如一個字串。在 Python 中,字串是一系列字符。每個字串由字符的組合組成。也許你有一個字串ADAM
。這個字串由四個可迭代的字符A
、D
、A
和M
組成。
作為一個字串,Python 只看到一個元素;ADAM
,如下所示。

但是,由於 Python 字串是可迭代的,Python 可以將該字串“拆分”為一個字符陣列,然後逐個處理每個字符。為此,你可以創建如下的 for 迴圈。
for 迴圈有一個目標或迭代器(在這個例子中是letter
),用來代表每一次迭代。然後告訴 Python 你想處理的可迭代元素(ATA
)使用 in
關鍵字。字符陣列中的每個字符都是在字串中的。
然後,在 for 迴圈內部,你可以創建任何你想在每次迭代運行的代碼。在這個例子中,Python 只是打印字符陣列(字串)中的每個字符。
你可以在下面看到,Python逐个打印字符串中的每个字符。

对循环可以迭代任何可迭代元素,例如列表和范围。在这个部分的示例中,将
ATA
替换为range(5)
,你会看到相同的结果。
Python While循环
对于循环可以遍历元素集合,而while循环则根据特定条件执行代码。更具体地说,Python在条件为false时继续执行while循环。
例如,在Python中常见的要求是创建一个计数器并执行代码指定次数。为了创建这种情况,你需要定义一个条件,当当前计数超过最大计数时返回True
。
假设你从一个名为count
的变量开始,其中存储整数0。你想将这个整数递增1,但不要超过5。你可以创建类似这样的东西:
上面的代码可能有效,但效率并不高。你没有使用DRY原则。你在重复自己。相反,通过使用while循环减少代码长度,并告诉Python在whilecount
小于六的情况下将一添加到count
。
以下示例使用while循环定义条件(count < 6
)并执行表达式(print
语句和递增count
),while条件为True
。

流程控制在循環中
在前兩個示例中,Python的for和while循環都自行啟動並結束。for循環終止是因為它達到了可迭代集合的末尾,而while循環結束是因為其條件評估為True
。
雖然Python循環通常以“正常”的方式結束,但您也可以更改循環的行為以提前終止或跳過一個或多個迭代。
中斷語句
當您需要提前結束循環時,可以使用break
語句來實現。當在循環內執行時,break
語句將停止當前迭代的循環。
通常,在循環內滿足特定條件時,您將使用break
語句。例如,在前一個for循環示例中,您學會了for循環將遍歷字符串中的字符數組。也許您只想處理直到第一個D
的所有字符。
要停止for循環(甚至是while循環),請定義一個您想要匹配的特定條件,然後包含一個break
語句,如下所示。
在下面的示例中,當迭代器變量letter
等於D
時,Python終止for循環。

繼續語句
也許您需要根據特定條件創建一個循環,但不一定要處理每個可迭代元素。在這種情況下,您可以使用continue
語句跳過迭代。
與終止整個迴圈的break
語句不同,continue
語句跳過當前的迭代。使用上面的例子,也許您想遍歷字符串ADAM
中的每個字符,但跳過D
字符。您可以使用條件(if letter == "D"
)和continue
語句來跳過D
字符,如下所示。
您可以看到,由於遇到D
字符時,continue
語句跳過了print
語句,因此Python未返回D
字符。

通過pass
語句完成流程控制部分
。pass
語句是一個有點特殊的佔位符。pass
語句用於定義一個在Python腳本中實際上不執行任何操作的迴圈。
假設您有一個for迴圈,出於某種原因,您希望保留在Python腳本中。但是,您實際上沒有要在其中執行的表達式,如下所示。
當您在Python中定義一個帶有表達式的for迴圈時,Python將返回IdentationError,如下所示。

但是,將pass
語句作為for
迴圈的表達式添加到其中,您將看到Python執行該for迴圈,實際上什麼也不做。

結論
在這個教程中,您學會了如何開始使用 Python 迴圈。學習 Python 迴圈的工作原理以及如何控制它們,將為您創建和構建穩健的 Python 程序提供更多機會。
有了您新獲得的知識,您將在代碼中的哪裡插入一個迴圈?