如何在迴圈中處理 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
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP