如何在迴圈中處理 Python 異常?


Python 中的迴圈技術將複雜的問題轉化為簡單的問題。它允許我們改變程式的流程,以便我們可以重複執行程式碼有限的次數,直到滿足某個條件,而不是一遍又一遍地編寫相同的程式碼。例如,如果我們需要顯示前十個自然數,我們可以在一個執行最多十次迭代的迴圈中執行此操作,而不是使用十次 print 命令。

Python 提供三種在程式中迴圈程式碼塊的方法:使用for迴圈、while迴圈和巢狀迴圈。

在本文中,讓我們看看如何在這些迴圈中處理異常。

在 While 迴圈中處理異常

While迴圈持續執行語句(程式碼),只要提供的條件為 TRUE。它在繼續執行指令之前首先檢查條件。

語法

while condition:
statements(code)

while 迴圈內部存在許多語句。條件可以是我們想要的任何內容。當條件失敗(變為 false)時,迴圈終止,執行繼續到下一行程式碼。

while 迴圈中的異常處理與通常的方法非常相似。包含可能發生異常的程式碼包含在 try 塊中。

我們有以關鍵字“except”開頭的語句。可以進行“自定義”異常:可以使用 raise 語句強制發生特定異常。

示例

假設我們希望向使用者請求一個整數。這是透過使用 input() 方法完成的。但是,從該方法獲得的輸入的預設值為字串;我們必須將其轉換為整數。這是使用 (int) 的型別轉換完成的。

在這裡,如果提供給該方法的輸入不是有效的整數,我們將引發 ValueError。每次給出錯誤型別的輸入時,while 迴圈都會一直要求使用者輸入正確的值。一旦輸入了正確的值,迴圈就會退出。這在以下示例中進行了演示 -

# The loops keeps executing until the value entered is an integer
while True:
    try: 
        n = int(input("Please Enter an Integer: "))
        break
    except ValueError:
        print(" The Integer You entered is not valid! Please try again…")
print("You successfully entered an Integer!")

輸出

如下面的輸出所示,while 迴圈會一直執行,直到輸入正確的值。

Please Enter an Integer: g
The Integer You entered is not valid! Please try again…
Please Enter an Integer: h
The Integer You entered is not valid! Please try again…
Please Enter an Integer: 7
You successfully entered an Integer! 

在 For 迴圈中處理異常

在 Python 中,for 迴圈遍歷序列(列表、元組、字串)或其他可迭代物件。遍歷序列的過程稱為遍歷。

for val in sequence:
   loop body

在每次迭代中,val 是獲取序列中專案值的變數。

迴圈重複,直到我們到達序列中的最後一個專案。縮排用於將 for 迴圈的主體與程式碼的其餘部分隔開。

讓我們檢查一下我們是否可以訪問超出陣列長度的陣列索引,並處理隨後的異常。

示例

在下面的示例中,我們使用 for 迴圈遍歷包含月份名稱的列表。如果這些月份的名稱存在於列表中,則會列印這些月份的名稱;一旦迴圈超過給定列表的長度,就會執行 except 塊並相應地顯示輸出。

array = ["Jan", "Feb", "Mar", "Apr"]
for i in range(5):
    try:
        print("The element from the array present in index", i,"is", array[i])
    except:
        print ("Index out of range")

輸出

上面程式的輸出如下所示 -

The element from the array present in index 0 is Jan
The element from the array present in index 1 is Feb
The element from the array present in index 2 is Mar
The element from the array present in index 3 is Apr
Index out of range

更新於: 2023-02-22

12K+ 次檢視

啟動你的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.