Python是当今最广泛使用的语言之一。像几乎所有其他编程语言一样,Python也有循环结构。Python循环,如for循环和while循环,允许开发人员根据不同条件迭代集合。
在本教程中,您将学习如何创建和使用每种类型的Python循环,以及如何使用break
、pass
和continue
Python语句控制循环。
让我们开始吧!
先决条件
本文将是一个逐步教程。如果您想跟着做,请确保已安装Python v3.6或更高版本。本教程将使用Python v3.9.2在Windows 10机器上。
理解可迭代的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逐个打印字符串中的每个字符。

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

循环中的流程控制
在前面的两个示例中,Python 的 for 循环和 while 循环都是自己开始和结束的。for 循环终止是因为它达到了可迭代集合的末尾,而 while 循环结束是因为它的条件求值为 True
。
虽然 Python 循环通常会“正常”结束,但您也可以更改循环的行为,使其提前终止或跳过一个或多个迭代。
中断语句
当您需要提前结束循环时,可以使用 break
语句。当在循环内执行时,break
语句会停止当前迭代的循环。
通常,在循环内满足特定条件时,您会使用 break
语句。例如,在前面的 for 循环示例中,您了解到 for 循环会迭代字符串中的字符数组。也许您只想处理直到第一个 D
之前的所有字符。
要停止 for 循环(甚至是 while 循环),请定义一个您想要匹配的特定条件,然后包含一个 break
语句,如下所示。
在下面的示例中,Python 在迭代变量 letter
等于 D
时终止 for 循环。

继续语句
也许您需要基于特定条件创建循环,但不一定要处理每个可迭代元素。在这种情况下,您可以使用 continue
语句跳过迭代。
与`break`语句终止整个循环不同,`continue`语句跳过当前迭代。使用上面的示例,也许您想迭代字符串`ADAM`中的每个字符,但跳过`D`字符。您可以使用条件(`if letter == “D”`)和`continue`语句跳过`D`字符,如下所示。
您可以看到下面的Python没有返回`D`字符,因为`continue`语句在遇到`D`字符时跳过了`print`语句。

占位语句
现在让我们通过`pass`语句完成流程控制部分。`pass`语句有点独特,因为它实际上只是一个占位符。`pass`语句是在Python脚本中定义一个实际上什么也不做的循环的一种方式。
假设您有一个for循环,出于某种原因您希望保留在Python脚本中。但是,您实际上没有要在其中执行的表达式,就像下面这样。
当您在Python中定义一个带有内部表达式的for循环时,Python将返回一个IdentationError,如下所示。

但是,将`pass`语句作为`for`循环内部的表达式添加进去,您将看到Python执行for循环,实际上什么也不做。

结论
在这个教程中,你学会了如何开始使用 Python 循环。学习 Python 循环的工作原理以及如何控制它们,将为你创造和构建稳健的 Python 程序提供更多机会。
有了你新获得的知识,你将在代码中的哪里插入循环?