%22%3E%3Cpath%20d%3D%22m-369%200h408v79h-408z%22%20fill%3D%22%237933ff%22%2F%3E%3Cpath%20d%3D%22m-148%200h306v45h-306z%22%20fill%3D%22%23974dff%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)
%22%2F%3E%3C%2FclipPath%3E%3Cg%20clip-path%3D%22url(%23a)%22%3E%3Cpath%20d%3D%22m76%200h484v36h-484z%22%20fill%3D%22%23974dff%22%2F%3E%3Cpath%20d%3D%22m0%200h384v24h-384z%22%20fill%3D%22%2306bdfc%22%20transform%3D%22matrix(1%200%200%20-1%200%2060)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)
while 循环有点类似于 if 语句:当条件为 True 时,会执行其中的代码。不过,与 if 语句不同的是,只要条件为 True,while 循环就会反复执行代码。
while 循环
如上所示,while 循环的语法与 if 语句非常相似。虽然 while 循环并不算常见,但在某些场景中非常有用。
示例
假设您正在基于数据进行数值建模。通常需要不断重复相同步骤,直到模型与数据之间的误差低于某个阈值。当您可以将问题重述为 重复执行某个动作直到满足某个条件 时,while 循环往往是不二之选。
在下面的示例中,您一开始设置误差为 50.0。接着编写一个 while 循环,在条件部分写上 error > 1,这样只要误差大于 1,循环就会再次执行。在循环内部,将误差除以 4 并更新 error 变量。第一次运行时,得到 12.5。
随后,Python 会带着新的误差值 12.5 回到 while 循环的条件判断处。由于条件仍为真,代码将继续执行。
Python 再次回到 while 循环的条件判断并尝试重运行代码。由于 3.125 大于 1,代码会继续计算。
最后,while 循环的新条件小于 1,因此代码会报错并停止运行。
这个例子很实用,因为接下来就轮到您自己动手构建一个 while 循环了!我们将编写一个 while 循环,为倒立摆实现一个非常基础的控制系统。如果偏离了垂直状态,while 循环会逐步校正这个偏移。
请注意:如果您的 while 循环运行时间过长,可能是哪里写错了。尤其要记得给循环内部代码正确缩进!
while 循环错误示例(持续运行)
假设您把误差值的更新语句注释掉或删除后重新运行脚本。由于误差不再更新,条件会始终为真,导致 while 循环永远不会结束。
如果在您的系统上犯了这个错误,需要通过按下 Control + C 键来中断 Python 程序。
示例
在下面的示例中,您将创建变量 offset,初始值为 8。然后编写一个 while 循环,只要 offset 不等于 0 就一直运行。
在 while 循环内部:
- 打印语句
"correcting..."。
- 接着将
offset 的值减 1。您可以使用 offset = offset - 1。
- 最后,在循环内部打印
offset,以便查看其变化。
运行上述程序后,会得到以下结果:
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 中的循环,成为专家。
while 循环有点类似于
if语句:当条件为 True 时,会执行其中的代码。不过,与if语句不同的是,只要条件为 True,while 循环就会反复执行代码。while 循环
如上所示,while 循环的语法与 if 语句非常相似。虽然 while 循环并不算常见,但在某些场景中非常有用。
示例
假设您正在基于数据进行数值建模。通常需要不断重复相同步骤,直到模型与数据之间的误差低于某个阈值。当您可以将问题重述为
重复执行某个动作直到满足某个条件时,while 循环往往是不二之选。在下面的示例中,您一开始设置误差为
50.0。接着编写一个 while 循环,在条件部分写上 error > 1,这样只要误差大于 1,循环就会再次执行。在循环内部,将误差除以 4 并更新 error 变量。第一次运行时,得到 12.5。随后,Python 会带着新的误差值 12.5 回到 while 循环的条件判断处。由于条件仍为真,代码将继续执行。
Python 再次回到 while 循环的条件判断并尝试重运行代码。由于 3.125 大于 1,代码会继续计算。
最后,while 循环的新条件小于 1,因此代码会报错并停止运行。
这个例子很实用,因为接下来就轮到您自己动手构建一个
while循环了!我们将编写一个while循环,为倒立摆实现一个非常基础的控制系统。如果偏离了垂直状态,while循环会逐步校正这个偏移。请注意:如果您的
while循环运行时间过长,可能是哪里写错了。尤其要记得给循环内部代码正确缩进!while 循环错误示例(持续运行)
假设您把误差值的更新语句注释掉或删除后重新运行脚本。由于误差不再更新,条件会始终为真,导致 while 循环永远不会结束。
如果在您的系统上犯了这个错误,需要通过按下 Control + C 键来中断 Python 程序。
示例
在下面的示例中,您将创建变量
offset,初始值为8。然后编写一个while循环,只要offset不等于0就一直运行。在
while循环内部:"correcting..."。offset的值减 1。您可以使用offset = offset - 1。offset,以便查看其变化。运行上述程序后,会得到以下结果:
亲自试一试。
要进一步了解 while 循环,请观看我们课程 Intermediate Python 中的这段视频。
本文内容选自 Hugo Bowne-Anderson 在 DataCamp 开设的 Intermediate Python 课程。
也可以查看我们的 Python 循环教程,以及在 Python 中模拟 Do-While 循环教程,继续学习并练习 Python 中的循环,成为专家。