跳至主要内容

Python 中的循环

For and While Loops in Python

Python 中有两种类型的循环:for 循环和 while 循环。

for 循环用于迭代序列(即列表、元组、集合、字典、字符串或任何其他可迭代对象),并对序列中的每个元素执行代码块。while 循环用于在某个条件为 true 的情况下重复执行代码块。在 while 循环中,条件在每次迭代的开始处检查,当条件变为 false 时,循环退出。务必确保条件最终变为 false,否则循环将无限期地继续运行,这称为无限循环。

Python 中的 for 循环语法

如何在 Python 中使用 for 循环遍历列表的一个示例

cars = ["bmw", "audi", "renault"]
for car in cars:
    print(car)

在此示例中,我们有一个汽车列表,我们希望在每一行打印一辆汽车。我们使用 for 循环迭代列表中的每个元素,并使用 print 函数将每个元素打印到控制台。

内联 for 循环

在此示例中,我们有一个 数字 列表,我们希望创建一个包含每个数字的平方的新列表。我们不使用传统的 for 循环,而是使用列表解析,这是一种更简洁的方法,可以达到相同的效果。

numbers = [1, 2, 3, 4, 5]
squares = [x**2 for x in numbers]
print(squares)

在此情况下,表达式为 x**2,这是迭代中当前数字的平方,可迭代对象是数字列表。列表解析的结果是一个包含每个数字平方的列表:[1, 4, 9, 16, 25]

带索引的 for 循环

在此示例中,loop 迭代 cars 列表,并打印每个元素的索引和值

cars = ["bmw", "audi", "renault"]
for i in range(len(cars)):
    print(i, cars[i])

使用循环在 Python 中实现幂函数

def power(a, b):
    pow = 1
    for i in range(b):
        pow *= a
    return pow

a = 2
b = 3
print(power(a, b))

Python 中的 while 循环

以下是一个 while 循环的示例,它从 1 计数到 10

count = 1
while count <= 10:
    print(count)
    count += 1

在此示例中,循环从 count 等于 1 开始。条件 count <= 10true,因此循环中的代码将被执行。此代码打印 count 的值(当前为 1),然后使用 += 运算符将 count 增加 1。然后,循环再次检查条件,该条件仍然为 true,因为 count 现在为 2。此过程重复进行,直到 count 达到 11,此时条件变为 false,循环终止。

注意:Python 没有像其他一些编程语言那样的内置 do-while 循环。但是,你可以使用 while 循环和初始检查的组合来实现类似的功能。

break 和 continue 语句

在 Python 中,breakcontinue 是用于修改循环行为的保留关键字。它们允许你根据条件控制循环何时终止或跳过某些迭代。

示例:如何 break 一个 for 循环

numbers = [1, 2, 3, 4, 5]
for num in numbers:
    if num == 3:
        # end for loop
        break
    print(num)

在此示例中,循环遍历 numbers 列表并打印每个数字。但是,当 num 的值等于 3 时,break 语句结束 for 循环。输出将为:1 2

如何使用 continuefor 循环

另一方面,continue 用于根据条件跳过循环迭代。遇到它时,它会导致循环的当前迭代结束,并继续进行下一个迭代。以下是如何在 Python 中跳过 for 循环中的迭代的示例

numbers = [1, 2, 3, 4, 5]
for num in numbers:
    if num == 3:
        continue
    print(num)

在此示例中,循环遍历 numbers 列表并打印每个数字。但是,当 num 的值等于 3 时,执行 continue 语句,导致循环的当前迭代结束并继续进行下一个迭代。输出将为:1 2 4 5

while 循环中 continue 的示例

在 Python 中的 while 循环中使用 continue 是跳过循环的某些迭代并继续进行下一个迭代的一种方法。当你需要跳过循环中的某些值或条件时,这会很有用。

i = 0
while i < 10:
    i += 1
    if i % 2 == 0:
        continue
    print(i)

在此示例中,循环遍历 1 到 10 的数字。但是,当 i 的值是偶数时,触发 continue 语句,导致循环跳到下一个迭代,而不会在当前迭代中执行任何更多代码。

my_list = [1, 2, 3, 4, 5]
while my_list:
    val = my_list.pop()
    if val == 3:
        continue
    print(val)

在此示例中,循环遍历 my_list 中的值。当 val 的值等于 3 时,continue 语句会导致循环跳到下一个迭代,而不会打印该值。

如何中断 while 循环

要中断 Python 中的 while 循环,可以使用 break 语句。此语句负责停止循环进一步迭代,只要满足某个条件。在 while 循环中使用 break 的语法如下

while <condition>:
    ### statements to be executed inside the loop

    if <break-condition>:
        break

此处,<condition> 是循环的条件,最初决定是否执行循环,而 <break-condition> 是定义停止循环的条件的附加条件语句。一旦满足此条件,循环将自动终止,并且控制权将转移到循环后的下一条语句。

n = 1
while n <= 10:
    print(n)
    if n == 5:
        break
    n += 1
print("Loop Ended")

# Output:
# 
# 1
# 2
# 3
# 4
# 5
# Loop Ended

在此示例中,while 循环将 print 从 1 到 5 的数字,然后在 n == 5stopbreak 语句用于实现此目的,并且输出显示循环在完成所需条件的执行后结束。

如何在 Python 中停止无限循环

while True:
    value = input("Enter a number: ")
    if value == "stop":
        break
    print(int(value) ** 2)
print("Loop Ended")

# Output:
# Enter a number: 2
# 4
# Enter a number: 5
# 25
# Enter a number: 3
# 9
# Enter a number: stop
# Loop Ended

在此示例中,while 循环会不断要求用户输入一个 number,如果 input 是一个 number,则计算其平方。如果 input 是“stop”,则循环将中断,并且控制权将转移到循环后的语句。

此方法有助于避免 Python 中的无限循环,并根据特定条件控制执行流。

for 循环中的计数

要在 Python 中的 for 循环中计数,可以使用循环计数器变量。此变量会跟踪 for 循环执行的次数。以下是两个示例

count = 0
for i in range(10):
    count += 1
print("The loop executed", count, "times.")

在此示例中,我们创建一个变量 count 并将其初始值设置为 0。然后,我们使用 for 循环迭代 10 次,每次将 count 变量递增 1。最后,我们 print 出循环执行的总次数。

fruits = ['apple', 'banana', 'cherry']
for i, fruit in enumerate(fruits, 1):
    print(i, fruit)

在此示例中,我们使用内置 enumerate() 函数来遍历 fruits 列表及其索引。我们通过将第二个参数传递给 enumerate() 来将索引从 1 开始。在循环内部,我们 print 出索引和 fruit 名称。

通过使用循环计数器变量,您可以轻松跟踪 Python 中 for 循环执行的次数。这对于调试、测试和分析性能很有用。

嵌套循环

嵌套循环是放置在另一个循环内的循环。在 Python 中,嵌套循环主要用于遍历 数组、矩阵和多维 列表。它们对于解决涉及对嵌套结构的每个元素重复任务的问题很有用。

Python 中的嵌套 For 循环

Python 中最常见的嵌套循环类型是嵌套 for 循环。此循环用于使用两个或多个 for 语句遍历嵌套结构中的元素。

嵌套 for 循环的简单示例

numbers = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

for row in numbers:
    for num in row:
        print(num)

在此示例中,我们有一个由多维列表表示的 3 x 3 矩阵。嵌套 for 循环遍历矩阵的元素,并在新行上打印每个数字。

Python 中的嵌套 while 循环

Python 中的嵌套 while 循环使用一个或多个内部循环来多次重复相同的过程。它们用于遍历嵌套数据结构的元素,直到满足某个条件。

嵌套 while 循环的示例

x = 1
y = 1

while x <= 5:
    y = 1
    while y <= x:
        print(y, end="")
        y += 1
    print()
    x += 1

在此示例中,我们使用两个嵌套 while 循环来 print 一个 numbers 三角形。外部 while 循环遍历三角形的每一 rowwhile 内部 while 循环遍历该行中的每个数字。

总体而言,嵌套循环是 Python 编程中的一个重要概念,它们可以通过遍历嵌套数据结构来帮助您解决复杂的问题。通过将嵌套 for 和 while 循环合并到您的代码中,您可以编写更高效、更易读且更强大的程序。

如何将 for 循环与 range 语句一起使用

Python 中的 range 语句 是一个内置函数,可用于生成数字序列。它通常在 for 循环中使用,以重复执行任务一定次数。以下是两个在 Python 中使用 range 语句的示例

for i in range(5):
    print(i)


for i in range(0, 10, 2):
    print(i)

在第一个示例中,for 循环用于遍历从 0 到 4 的数字范围。在第二个示例中,range 函数使用三个参数调用:起始数字 (0)、结束数字 (10) 和步长 (2)。这将生成一个从 0 到 10(不包括 10)的数字序列,步长为 2。然后,for 循环遍历此序列并打印每个数字。

反向 for 循环

for i in range(5, 0, -1):
    print(i)
# Output:
# 5
# 4
# 3
# 2
# 1
a = ['1', '2', '3', '4', '5']

for i in reversed(a):
    print(i)
# Output:
# 5
# 4
# 3
# 2
# 1

在 Python 中使用 range 语句是遍历数字序列并执行任务的有效方法。它是编程中常用的技术,并且很容易使用 Python 中的 for 循环来实现。

一行 for 循环

列表解析让用一行代码在 Python 中编写 for 循环变得更容易。使用单行循环可以帮助简化代码并使其更简洁。

squares = [x**2 for x in range(10)]
print(squares)

输出

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
even_numbers = [num for num in range(20) if num % 2 == 0]
print(even_numbers)

# Output:
# 
# [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

在两个示例中,for 循环都使用列表解析浓缩成一行。循环迭代一个值range并对给定的range应用一个条件。这会生成一个包含所需输出的列表。

在 Python 中使用单行 for 循环是一个强大的工具,可以优化你的代码并提高其效率。

深入了解该主题

与我们合作!

不要犹豫,在 GitHub 上为 Python 教程做出贡献:创建 fork,更新内容并发出 pull 请求。

Profile picture for user zerbers
Python 工程师,内容贡献者。
Profile picture for user AliaksandrSumich
更新时间:05/03/2024 - 22:43
Profile picture for user angarsky
已审阅并批准