異常就是執行期檢測到的錯誤。計算機語言針對可能出現的錯誤定義了異常型別,某種錯誤引發對應的異常時,異常處理程式將被啟動,從而恢復程式的正常執行。
異常體系內部有層次關係,python異常體系中的部分關係如下所示:
: 檢測範圍
except exception[
as reason]
: 出現異常後的處理**
try 語句按照如下方式工作:
【例子】
try
: f =
open
('test.txt'
)print
(f.read())
f.close(
)except oserror:
print
('開啟檔案出錯'
)# 開啟檔案出錯
try:
檢測範圍
except exception[as reason]:
出現異常後的處理**
finally:
無論如何都會被執行的**
不管try
子句裡面有沒有發生異常,finally
子句都會執行。
【例子】如果乙個異常在try
子句裡被丟擲,而又沒有任何的except
把它截住,那麼這個異常會在finally
子句執行後被丟擲。
def
divide
(x, y)
:try
: result = x / y
print
("result is"
, result)
except zerodivisionerror:
print
("division by zero!"
)finally
:print
("executing finally clause"
)divide(2,
1)# result is 2.0
# executing finally clause
divide(2,
0)# division by zero!
# executing finally clause
divide(
"2",
"1")
# executing finally clause
# typeerror: unsupported operand type(s) for /: 'str' and 'str'
如果在try
子句執行時沒有發生異常,python將執行else
語句後的語句。
try
: 檢測範圍
except
: 出現異常後的處理**
else
: 如果沒有異常執行這塊**
使用except
而不帶任何異常型別,這不是乙個很好的方式,我們不能通過該程式識別出具體的異常資訊,因為它捕獲所有的異常。
try:
檢測範圍
except(exception1[, exception2[,…exceptionn]]]):
發生以上多個異常中的乙個,執行這塊**
else:
如果沒有異常執行這塊**
【例子】
try
: fh =
open
("testfile.txt"
,"w"
) fh.write(
"這是乙個測試檔案,用於測試異常!!"
)except ioerror:
print
("error: 沒有找到檔案或讀取檔案失敗"
)else
:print
("內容寫入檔案成功"
) fh.close(
)# 內容寫入檔案成功
注意:else
語句的存在必須以except
語句的存在為前提,在沒有except
語句的try
語句中使用else
語句,會引發語法錯誤。
python 使用raise
語句丟擲乙個指定的異常。
【例子】
try
:raise nameerror(
'hithere'
)except nameerror:
print
('an exception flew by!'
)# an exception flew by!
task0 最小棧 和task1(有效括號)
2.letecode2 堆疊和數列 stack and queue 2.1概念 2.1.1.棧都是一種資料項按序排列的資料結構,只能在一端 稱為棧頂 top 對資料項進行插入和刪除。棧,先進後出。2.1.2佇列是一種特殊的線性表,只允許在表的頭部 front處 進行刪除操作,在表的尾部 rear處 ...
龍珠天池Python學習計畫Task4
利用pandas分析美國選民 喜好。進行資料處理前,我們需要知道我們最終想要的資料是什麼樣的,因為我們是想分析候選人與捐贈人之間的關係,所以我們想要一張資料表中有捐贈人與候選人一一對應的關係,所以需要將目前的三張資料表進行一一關聯,彙總到需要的資料。進過資料處理部分,我們獲得了可用的資料集,現在我們...
資料分析高階 DCIC競賽 task0準備工作
學習資源 學習手冊 賽事詳情 共有三個部分的競賽 1 端午假期a城市交通網路擁堵識別及緩堵策略研究 需要具有從經緯度對映到路段的能力 2 a城市巡遊車與網約車與運營特徵對比分析 主要是對計程車和網約車的分布之類的對比,相對於第乙個賽題難度稍小 3 創意題 城市巡遊車與網約車運營特徵對比分析 賽題說明...