如何在 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