Python 零基础教程

Python 循环语句

循环允许我们自动化重复性任务并多次执行特定的代码块。

无论是迭代处理数据集合、执行重复计算,还是创建动态和交互式程序,循环都是必不可少的工具。

理解如何高效使用 for 和 while 循环,是你编写简洁、高效 Python 代码的关键。

1. 理解 for 循环

for 循环用于遍历一个序列(例如列表、元组、字符串或范围),并为序列中的每个元素执行一次代码块。

for 循环的基本语法如下:

for variable in sequence:
    # 针对每个元素要执行的代码
  • variable(变量):在循环的每次迭代中,这个变量会依次接收序列中当前元素的值。
  • sequence(序列):这是你要遍历的项目集合。它可以是列表、元组、字符串、范围(range)或任何其他可迭代对象。
  • 针对每个元素要执行的代码:这是为序列中每个元素执行的代码块。它必须缩进才能被识别为循环的一部分。

1.1 遍历列表

for 循环最常见的用途之一是遍历列表中的元素。

# 示例:遍历一个水果列表
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

在这个例子中,for 循环遍历了 fruits 列表。在每一次迭代中,变量 fruit 会获取列表中当前元素的值,随后 print(fruit) 语句将其打印出来。

1.2 遍历字符串

你也可以使用 for 循环来遍历字符串中的每一个字符。

# 示例:遍历一个字符串
message = "Hello"
for char in message:
    print(char)

在这种情况下,for 循环遍历了 message 字符串。在每一次迭代中,变量 char 获取字符串中的当前字符,并将其打印出来。

1.3 使用 range() 函数

range() 函数经常与 for 循环搭配使用,用来生成一系列连续的数字。range() 函数可以接收一个、两个或三个参数:

  • range(stop):生成从 0 开始,到 stop 结束(不包括 stop)的数字序列。
  • range(start, stop):生成从 start 开始,到 stop 结束(不包括 stop)的数字序列。
  • range(start, stop, step):生成从 start 开始,到 stop 结束(不包括 stop)的数字序列,每次递增的步长为 step
# 示例:使用 range() 打印 0 到 4 的数字
for i in range(5):
    print(i)

# 示例:使用 range() 打印 2 到 5 的数字
for i in range(2, 6):
    print(i)

# 示例:使用 range() 打印 0 到 10 的偶数
for i in range(0, 11, 2):
    print(i)

1.4 嵌套 for 循环

你可以将一个 for 循环放在另一个 for 循环内部,这被称为嵌套循环。它非常适合用来处理二维数据结构,比如矩阵或表格。

# 示例:嵌套 for 循环打印坐标
for i in range(3):
    for j in range(2):
        print(f"({i}, {j})")

在这个例子中,外层 for 循环执行 3 次,而对于外层循环的每一次迭代,内层 for 循环会执行 2 次。因此,最终打印出的坐标结果为 (0, 0)、(0, 1)、(1, 0)、(1, 1)、(2, 0) 和 (2, 1)。

2. 理解 while 循环

while 循环用于在特定条件为 True(真)时,重复执行一段代码块。while 循环的基本语法如下:

while condition:
    # 只要条件为真,就执行的代码
  • condition(条件):这是一个布尔表达式,在循环的每次迭代开始前都会被评估。如果条件为真,则执行代码块。如果条件为假,循环就会终止。
  • 只要条件为真,就执行的代码:这是只要条件成立就会持续执行的代码块。同样,它必须缩进。

2.1 基础 while 循环示例

# 示例:使用 while 循环打印数字 1 到 5
count = 1
while count <= 5:
    print(count)
    count += 1

在这个例子中,只要 count 变量小于或等于 5,while 循环就会继续运行。在循环内部,首先打印 count 的当前值,然后将 count 的值增加 1(count += 1)。这确保了当 count 变成 6 时,条件不再满足,循环最终能够正常结束。

2.2 结合用户输入使用 while 循环

while 循环经常被用来不断提示用户进行输入,直到用户提供了一个有效的输入为止。

# 示例:提示用户输入,直到他们输入 "quit" 为止
user_input = ""
while user_input != "quit":
    user_input = input("请输入指令(或输入 'quit' 退出):")
    print(f"你输入了: {user_input}")

在这个例子中,只要 user_input 变量不等于 "quit",while 循环就会持续运行。在循环内,程序提示用户输入指令,并将其存储在 user_input 变量中。一旦用户输入了 "quit",循环即刻终止。

2.3 无限循环

如果 while 循环的条件始终为 True,循环将永远运行下去,这被称为无限循环(死循环)。在编写代码时,务必确保循环条件最终会变为 False 以避免这种情况。

# 示例:一个无限循环(请避免这样做!)
# x = 1
# while x > 0:
#     print("这会永远打印下去!")

在这个例子中,条件 x > 0 永远为真,因为 x 的初始值为 1,并且在循环内部从未被修改过。这将导致循环无限期地运行,不断打印文本。如果要强制停止无限循环,通常需要在终端中手动终止程序(例如按下 Ctrl+C)。

3. for 循环与 while 循环的选择

在实际开发中,你应该如何选择使用哪种循环呢?

  • 使用 for 循环:当你提前知道需要迭代的次数时(例如,遍历一个列表或一个已知范围的数字)。
  • 使用 while 循环:当你需要重复执行代码直到满足某个特定条件,并且你无法预先知道需要迭代多少次时(例如,等待用户输入或监控传感器数据)。
特性for 循环while 循环
迭代方式遍历一个序列(列表、元组、字符串等)直到某个条件变为 False(假)
迭代次数预先已知可能预先未知
常见使用场景遍历集合、处理序列数据重复操作直到达成某项条件