如何在 Python 中防止迴圈進入無限迴圈模式?


在 Python 中,while 迴圈需要透過在迴圈體內部設定一些機制來控制,從而將開頭提到的條件變為假。這通常透過記錄迭代次數來實現。

如果 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 !

示例

我們還可以使用**嘗試和除了**方法來處理無限迴圈,如下例所示。

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

輸出

Python!

上面的程式也會一直執行,直到手動點選 CTRL + C 中斷。但它不會像前面的示例那樣引發 KeyboardInterrupt 異常。except 程式碼塊透過使用 break 語句抑制了 KeyboardInterrupt 異常。

更新於: 2023-08-23

2K+ 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.