15.1 基本区别(掌握)

  • for 循环:用于遍历可迭代对象(如列表、元组、字符串、字典、集合等)中的每一个元素,通常适用于明确知道迭代次数的场景。
  • while 循环:在条件为 True 时不断执行代码块,适用于不确定迭代次数的场景,直到某一条件满足才结束循环。

15.2 语法结构对比(掌握)

for 循环的基本语法

for 变量 in 可迭代对象:
    代码块

while 循环的基本语法

while 条件:
    代码块

15.3 使用场景(掌握)

for 循环的适用场景

  • 遍历已知长度的可迭代对象:如列表、字符串、元组等,直接遍历元素。
  • 需要计数的循环:可以与 range() 配合,执行固定次数的循环。
  • 生成列表:列表生成式通常使用 for 循环生成。

while 循环的适用场景

  • 条件控制的循环:在满足条件时重复执行代码,而不是固定次数。
  • 用户输入验证:不断检查输入,直到符合要求为止。
  • 无限循环:在服务器或实时监控中常见,通过 while True 持续执行,直到满足某个终止条件。

15.4 优缺点比较(掌握)

特性for 循环while 循环
适用情况明确的迭代次数或固定的序列不确定的迭代次数,基于条件的循环
可读性代码简洁明了,适合处理序列适合动态条件的循环,但逻辑略复杂
灵活性依赖可迭代对象或 range 控制次数可处理任意复杂的条件
效率更适合于遍历对象,代码效率高适合条件控制,可能会陷入死循环

15.5 forwhile 循环的替换(掌握)

在某些情况下,forwhile 循环可以相互替换:

15.5.1 使用 while 循环模拟 for 循环

  • 示例:用 while 模拟一个固定次数的循环。

    i = 0
    while i < 5:
        print(i)
        i += 1

    等价于:

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

15.5.2 使用 for 循环模拟简单的条件控制

虽然 for 循环并不直接适用于条件控制,但可以通过遍历 itertools.cycle 实现无限循环,并在循环体中条件判断以 break 退出。

from itertools import cycle

for _ in cycle([None]):
    user_input = input("请输入 'exit' 退出: ")
    if user_input == "exit":
        break

15.6 示例对比(掌握)

示例 1:遍历列表

  • for 循环

    fruits = ["apple", "banana", "cherry"]
    for fruit in fruits:
        print(fruit)
  • while 循环

    fruits = ["apple", "banana", "cherry"]
    i = 0
    while i < len(fruits):
        print(fruits[i])
        i += 1

示例 2:条件控制的循环

  • for 循环(通过 break 终止)

    for _ in range(100):  # 实际上是人为限定了次数
        user_input = input("请输入 'exit' 退出: ")
        if user_input == "exit":
            break
  • while 循环

    while True:
        user_input = input("请输入 'exit' 退出: ")
        if user_input == "exit":
            break

15.7 循环的嵌套使用(了解)

forwhile 循环可以嵌套使用,适合处理多层数据结构或条件复杂的情况。

  • 示例:遍历二维列表中的元素,并根据条件判断是否打印

    matrix = [
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]
    ]
    for row in matrix:
        for element in row:
            if element % 2 == 0:
                print(element)

在这个示例中,for 循环用于遍历列表,而条件判断和打印操作可以在嵌套循环中控制。


15.8 优先选择哪种循环(掌握)

  • 选择 for 循环:当明确知道迭代次数或需要遍历可迭代对象时,优先选择 for 循环。它的结构清晰、代码简洁。
  • 选择 while 循环:当循环次数不确定或需要条件控制时,选择 while 循环。它在处理需要灵活控制结束条件的场景中更合适。

结束

本文标题: Python3学习笔记第十五篇--for循环和while循环比较

本文链接: https://blog.oyooy.com/archives/61.html

除非另有说明,本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

声明:转载请注明文章来源。

最后修改:2025 年 02 月 08 日
如果觉得我的文章对你有用,请随意赞赏