一、異常
異常是一種特殊的錯誤物件,可以捕獲並檢查它們,以決定如何處理錯誤。
出現異常後,如果不捕獲或以其他方式處理,python將立即停止執行程式,並顯示棧跟蹤(異常發生前呼叫的函式清單)。
(一)引發異常
python內建函式和庫函式通常在出現意外情況時引發異常。
如:除以零將丟擲異常
>>> 1/0
traceback (most recent call last):
file "", line
1, in
1/0zerodivisionerror: division by
zero
二、捕獲異常
當異常發生時,有兩種選擇處理:
1、忽略異常,讓程式崩潰並顯示棧跟蹤。
2、捕獲異常,並列印友好的錯誤訊息乃至試圖修復問題。
#從使用者那裡獲取乙個整數
#反覆提示使用者,直到其輸入有效的整數
defget_age
():while
true:
try:
n=int(input("how old are you?"))
return n
except valueerror:
print("please enter an integer value.")
get_age()
***************==== restart:f
:/pythonlab/
20161112/exc1.py ***************====
how old are you?1.5
please enter an integer value.
how old are you?19
get_age()函式中while迴圈是乙個try/except塊,其中可能引發異常的**位於try語句塊中,如果try語句塊內**出現異常,就將跳過try塊中後續所有未執行的語句,跳轉到except語句塊,該塊中為出現異常後的處理語句。如果try中沒有出現異常,將跳過except塊。
1、 try/except塊
try/except塊工作原理有點像if語句,但if語句根據布林表示式判斷,而try/except語句是根據是否出現異常判斷。
2、捕獲多種異常
def
convert_to_int1
(s,base):
try:
return int(s,base)
exception(valueerror,typeerror):
return
'error'
如果需要分別處理,也可以如下例:
def
convert_to_int1
(s,base):
try:
return int(s,base)
exception valueerror:
return
'value error'
exception typeerror:
return
'type error'
如果在except子句中沒有指定異常,那麼它將捕獲try子句引發的所有異常:
def
convert_to_int2
(s,base):
try:
return int(s,base)
exception:
return
'error'
三、清理操作
在try/except塊中,可包含執行清理操作的finally**塊,finally塊無論是否引發異常都會被執行。
def
invert
(x):
try:
return
1/x except zerodivisionerror:
return
'error'
finally:
print('invert(%s) done' % x)
print(invert(0))
python入門 第8章 切片
1 對list進行切片 小結如下 切面最多可以有三個引數,引數之間使用 來分開,如果第乙個引數不寫,表示從第乙個元素開始,如果第二個引數不寫,表示到最後乙個元素 如果第乙個引數和第二個引數都寫了,那麼取值的時候從索引為第乙個引數開始,到第二個引數索引之間取值,不包含第二個索引對應的值 如果第三個引數...
Python入門 第8章 函式
此系列文章的創作初衷是作為讀書過程中的筆記,而非教程類文章。def greet print hello def greetuser name print hello,name.title def greet 顯示簡單的問候語 print hello 乙個良好的 編寫習慣是,在每個函式頭後都用文件字串...
第00章 Python程式設計入門(第3版)目錄
python是一種解釋型 物件導向 動態資料型別的高階程式語言,自20世紀90年代初誕生至今,逐漸被廣泛應用於處理系統管理任務和web程式設計。本書用通俗易懂的語言結合常見任務 螢幕圖和詳細的解釋,循序漸進地介紹了python的基礎知識,助你輕鬆 迅速地學習python。書中沒有深奧的理論或者高階應...