Python學習筆記10 錯誤 除錯和測試

2021-07-27 21:12:41 字數 1602 閱讀 7381

try...except...finally...,不同型別的錯誤由不同的except語句塊處理,如果沒有錯誤發生,可以在except語句塊後面加乙個else,沒有錯誤發生時,執行else語句,finally語句如果有,一定會被執行(可以沒有finally語句)。

try:

print('try...')

r = 10 / int('2')

print('result:', r)

except valueerror as e:

print('valueerror:', e)

except zerodivisionerror as e:

print('zerodivisionerror:', e)

else:

print('no error!')

finally:

print('finally...')

print('end')

呼叫堆疊,如果錯誤沒有**獲,一直往上拋,最終由python直譯器捕獲,列印錯誤資訊後程式退出。

記錄錯誤,logging.exception(e),程式列印完錯誤資訊後會繼續執行。

丟擲錯誤,我們可以自定義錯誤的class,選擇好繼承關係。用raise語句丟擲乙個錯誤的例項。raise語句如果不帶引數,會把當前錯誤原樣丟擲,讓頂層呼叫者處理。

print(),列印有可能出問題的變數。

斷言assert,如果斷言失敗,assert語句會丟擲assertionerrorpython -o file.py關閉斷言。

logging,允許指定記錄資訊的級別,有debuginfowarningerror等幾個級別。通過配置,一條語句可以輸出到不同地方,如console和檔案。

import logging

logging.basicconfig(level = logging.info) # 控制輸出哪個級別的資訊

偵錯程式pdb,python -m pdb file.py,命令l可以檢視**,命令n可以單步執行**,任何時候可以出入命令p 變數名來檢視變數,命令q結束除錯。

pdb.set_trace(),在可能出錯的地方放乙個set_trace,可以設定乙個斷點,程式會在pdb.set_trace()暫停並進入除錯環境,命令p檢視變數,命令c繼續執行。

支援除錯功能的ide,如pycharm,eclipse+pydev外掛程式。

python 學習筆記(10)

字串方法 find join lower replace split strip translate find 可以在乙個較長的字串中查詢字串,返回值是這個字串所在的位置的最左端索引,找不到返回 1 例 with a moo moo here,and a moo moo there find moo...

python學習筆記(10)

多台是指對不同型別的變數進行相同操作,根據物件 或類 不同而表現出不同的行為。1 多型的方法是多型,屬性沒有多型。2 多型的存在有2個必要條件 繼承,方法重寫。在python中所有的 雙下劃包起來的方法,都稱為 魔方方法 作用是構造出優美的 將複雜的邏輯封裝成簡單的方法。運算子過載 運算子過載 cl...

python錯誤和異常學習筆記

1.python中的異常 nameerror 嘗試訪問乙個未申明的變數 zerodivisionerror 除數為零 syntaxerror 直譯器語法錯誤 indexerror 請求的索引超出序列範圍 keyerror 請求乙個不存在的字典關鍵字 ioerror 輸入 輸出錯誤 attribute...