如何在 Python 中防止循环进入无限循环模式?


在 Python 中,while 循环需要通过在循环体内部设置一些机制来控制,从而将开头提到的条件变为假。这通常通过记录迭代次数来实现。

如果 while 循环条件永远不会评估为 False,那么我们将得到一个无限循环,即一个永远不会自动停止的循环,在这种情况下,我们需要外部中断。

count=0 while condition: stmt1 stmt2 . . count=count+1

示例

让我们举个例子,看看如何防止 while 循环进入无限循环模式。

Open Compiler
count = 0 while count < 5: print('Python !') count+=1

输出

Python !
Python !
Python !
Python !
Python !

在循环中,我们将条件变量“Count”的值增加了 1,以便我们可以迭代循环 5 次。

手动中断循环

如果我们在程序中没有提及任何循环中断语句/计数器,那么我们可以通过按 CTRL + C 手动中断程序。然后它将引发如下所示的 KeyboardInterrupt 异常。

示例

循环将一直执行,直到按下 CTRL + C,但 Python 还具有一个 break 语句,我们可以直接在代码中使用它来停止此类循环。

while True: print('Python !')

输出

Python !
Python !
Python !
Python !
Python !
Python !
Python !
Python !
Python !
Python !
Python !
Python !
Python !
.
.
.

---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-9-f36b31426ed4> in <module>
      1 while True:
----> 2     print('Python !')

使用 break 语句

循环重复也可以通过使用 break 语句提前退出迭代来控制。

语法

while True: stmt1 stmt2 if expr==True: break stmt3 ..

示例

让我们以之前的示例为例,看看 break 语句如何停止无限循环。在上面的示例中,while 循环只执行了一次,因为 break 语句在第一次迭代中停止了循环。

Open Compiler
while True: print('Python !') break

输出

Python !

示例

我们还可以使用**尝试和除了**方法来处理无限循环,如下例所示。

while True: try: print("Python!") except: break

输出

Python!

上面的程序也会一直执行,直到手动点击 CTRL + C 中断。但它不会像前面的示例那样引发 KeyboardInterrupt 异常。except 代码块通过使用 break 语句抑制了 KeyboardInterrupt 异常。

更新于: 2023-08-23

2K+ 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告