Python中For循环和While循环的区别

2025 年 9 月 9 日 | 阅读 6 分钟

在 Python 中,for 循环和 while 循环是用于重复执行指定操作的两个基本语句。虽然这两个循环都有相似之处,但它们在机制和应用上有所不同。通常,当迭代次数已知时,我们使用 for 循环;当迭代次数未知时,我们使用 while 循环。

Python 中的 For 循环是什么?

Python for 循环是一种编程机制,用于在满足给定条件之前迭代序列。

Python 中的 for 循环允许我们迭代可迭代对象,如元组、列表、字典和字符串,直到达到序列的末尾或满足条件。for 循环在每次迭代完成后进入下一步。

Python 中的 For 循环语法

参数

  • var_name:分配给给定序列中每个元素的变量名
  • sequence = 序列是指列表、元组、字典和字符串等可迭代元素
  • 循环对可迭代对象中的每个项目执行一次。
  • 循环下方的缩进块在每次迭代时都会运行。

Python For 循环示例

我们现在将看一些 Python 'for' 循环的示例

Python For 循环基础示例

在此示例中,我们将看到一个 Python For 循环的基础示例

让我们通过一个简单的示例来理解 For 循环是如何工作的

示例

输出

1
2
3
4
5
6

说明

在上面的示例中,我们使用带 range() 函数的 for 循环打印了 1 到 6 之间的数字。

另一个示例:range() 与 For 循环的用法

我们现在将看一个示例来理解 'for' 循环与 range() 函数 的工作原理。

示例

输出

Enter number of rows: 5
         * 
      * * * 
    * * * * * 
  * * * * * * * 
* * * * * * * * *

说明

上面的代码是一个嵌套循环的示例,我们使用嵌套 For 循环打印了星形图案。

While 循环是什么?

Python 的 while 循环用于在给定条件保持为 True 的情况下重复执行一段代码。当迭代次数事先未知时,它很有用。

语法

  • condition:在每次迭代之前评估的布尔表达式。
  • 仅当条件为真时,循环内的代码块才会被执行。
  • 如果条件永远不会变为 False,循环将无限运行,可能导致无限循环。

Python While 循环示例

我们现在将看一些 Python while 循环的示例

While 循环基础示例

在此示例中,我们将看到 While 循环在 Python 中的工作原理。

示例

输出

0 Hello
1 Hello
2 Hello
3 Hello
4 Hello

说明

在上面的示例中,我们将变量 counter 初始化为 0。然后,我们进入一个 while 循环,该循环只要 counter 小于 5,就执行代码块。在循环中,我们打印了 counter 的当前值,后跟“Hello”。每次迭代后,counter 增加 1。一旦 counter 达到 5,条件 counter < 5 就变为 False,导致循环终止。

另一个示例:while 循环与 'else' 的用法

在此示例中,我们将看到如何将 While 循环与 'else' 语句一起使用

示例

输出

1
2
3
Loop completed successfully!

说明

在此示例中,我们创建了一个初始值为 1 的计数器。然后,我们使用带有 'else' 语句的 While 循环在指定条件下进行迭代。在此循环中,我们打印了计数器值并将其加 1。此循环一直迭代直到条件保持为 True。在 'else' 块下,我们打印了一个在条件变为 False 时运行的语句。

特性For 循环while 循环
定义迭代序列(如列表、字符串或范围)。只要条件为 True,就重复执行代码块。
用途当迭代次数已知或有序列可用时。当迭代次数未知或取决于条件时。
语法for 变量 in 可迭代对象
# 代码块
while 条件
# 代码块
循环控制由可迭代对象(例如列表、元组、范围)控制。由最终必须变为 false 的条件控制。
循环变量每次迭代自动更新。需要在循环内部手动更新。
无限循环的风险低,因为它依赖于可迭代对象。如果条件从未变为 false,则风险更高。
常见用例迭代列表、字符串、字典等中的项。等待用户输入、检查传感器数据或运行直到满足某个条件。
结构简洁性处理序列时更简洁。对于复杂或动态条件更灵活。
终止当可迭代对象耗尽时自动结束。只有当条件变为 false 时才结束。

Python 中 For 循环和 While 循环的区别常见问题解答

1. Python 中的 'for' 循环和 While 循环有什么区别?

for 循环和 while 循环的主要区别在于,For 循环专门用于迭代次数已知或遍历序列(列表、元组、字符串等)的情况,而 While 循环用于我们不知道迭代次数且基于每次迭代前检查的特定条件的情况。

2. 在什么情况下可以使用 'for' 循环?

'for' 循环可用于处理序列或已知迭代周期的场景。这非常适合遍历一组值、一组项目,甚至是单词或短语中的字符。

3. 何时适合使用 while 循环?

当循环需要基于特定条件而不是指定次数运行时,While 循环更合适。常见的例子包括输入验证、等待某个条件变为 false 或循环直到某个事件发生。

4. 这两种循环都会创建无限循环吗?

是的,for 循环和 while 循环都可以创建无限循环。如上所述,如果提供的条件永远不满足,while 循环将变成无限循环,因此假定其为 false。对于 for 循环,无限循环不太可能发生,因为我们已经预设了循环可以运行的范围。

5. 在 Python 中,break、continue 和 else 是否适用于这两种循环?

是的,由于 Python 中存在 'for' 和 while 循环,它们都支持 break(在产生结果之前退出循环)、continue(跳过当前迭代)以及 else(仅当循环在没有 break 语句的情况下完成时执行一段代码)。


下一个主题Python 列表