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 <= 10
为 true
,因此循环中的代码将被执行。此代码打印 count 的值(当前为 1
),然后使用 +=
运算符将 count 增加 1
。然后,循环再次检查条件,该条件仍然为 true
,因为 count 现在为 2
。此过程重复进行,直到 count 达到 11
,此时条件变为 false
,循环终止。
注意:Python 没有像其他一些编程语言那样的内置
do-while
循环。但是,你可以使用while
循环和初始检查的组合来实现类似的功能。
break 和 continue 语句
在 Python 中,break
和 continue
是用于修改循环行为的保留关键字。它们允许你根据条件控制循环何时终止或跳过某些迭代。
示例:如何 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
。
如何使用 continue
和 for
循环
另一方面,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 == 5
时 stop
。break
语句用于实现此目的,并且输出显示循环在完成所需条件的执行后结束。
如何在 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
循环遍历三角形的每一 row
,while
内部 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 循环是一个强大的工具,可以优化你的代码并提高其效率。