跳至主要内容

Python while 循环教程

了解 while 循环在 Python 中的工作原理。
· 4分钟 阅读

使用 AI 探索

while 循环有点类似于 if 语句:当条件为 True 时,会执行其中的代码。不过,与 if 语句不同的是,只要条件为 True,while 循环就会反复执行代码。

while 循环

The while Loop

如上所示,while 循环的语法与 if 语句非常相似。虽然 while 循环并不算常见,但在某些场景中非常有用。

示例

假设您正在基于数据进行数值建模。通常需要不断重复相同步骤,直到模型与数据之间的误差低于某个阈值。当您可以将问题重述为 重复执行某个动作直到满足某个条件 时,while 循环往往是不二之选。

在下面的示例中,您一开始设置误差为 50.0。接着编写一个 while 循环,在条件部分写上 error > 1,这样只要误差大于 1,循环就会再次执行。在循环内部,将误差除以 4 并更新 error 变量。第一次运行时,得到 12.5。

Example

随后,Python 会带着新的误差值 12.5 回到 while 循环的条件判断处。由于条件仍为真,代码将继续执行。

example

Python 再次回到 while 循环的条件判断并尝试重运行代码。由于 3.125 大于 1,代码会继续计算。

Example

最后,while 循环的新条件小于 1,因此代码会报错并停止运行。

这个例子很实用,因为接下来就轮到您自己动手构建一个 while 循环了!我们将编写一个 while 循环,为倒立摆实现一个非常基础的控制系统。如果偏离了垂直状态,while 循环会逐步校正这个偏移。

请注意:如果您的 while 循环运行时间过长,可能是哪里写错了。尤其要记得给循环内部代码正确缩进!

while 循环错误示例(持续运行)

假设您把误差值的更新语句注释掉或删除后重新运行脚本。由于误差不再更新,条件会始终为真,导致 while 循环永远不会结束。

Example of While Loop Error (Continuously Running)

如果在您的系统上犯了这个错误,需要通过按下 Control + C 键来中断 Python 程序。

示例

在下面的示例中,您将创建变量 offset,初始值为 8。然后编写一个 while 循环,只要 offset 不等于 0 就一直运行。

在 while 循环内部:

  • 打印语句 "correcting..."。
  • 接着将 offset 的值减 1。您可以使用 offset = offset - 1。
  • 最后,在循环内部打印 offset,以便查看其变化。
Example

运行上述程序后,会得到以下结果:

correcting...
7
correcting...
6
correcting...
5
correcting...
4
correcting...
3
correcting...
2
correcting...
1
correcting...
0

亲自试一试。

要进一步了解 while 循环,请观看我们课程 Intermediate Python 中的这段视频。

本文内容选自 Hugo Bowne-Anderson 在 DataCamp 开设的 Intermediate Python 课程。

也可以查看我们的 Python 循环教程,以及在 Python 中模拟 Do-While 循环教程,继续学习并练习 Python 中的循环,成为专家。 

主题