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

pythonserver side programmingprogramming

在 Python 中,需要通过在循环主体内部进行一些设置来控制 while 循环,以使开头提到的条件变为 false。这通常通过保持迭代次数来实现。

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

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

示例

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

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 语句在第一次迭代中停止了循环。

while True:
    print('Python !')
    break

输出

Python !

示例

我们还可以使用 Try and except 方法来处理无限循环,如下例所示。

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

输出

Python!

上述程序也会一直执行,直到通过单击 CTRL + C 手动中断。但它不会像上一个示例一样引发 KeyboardInterrupt 异常。except 块通过使用 break 语句来抑制 KeyboardInterrupt 异常。


相关文章