python五種除錯或排錯的方法

Tynam.Yang發表於2018-05-28
1、print,直接列印,比較簡單而且粗暴
  在程式碼中直接輸入print+需要輸出的結果,根據列印的內容判斷即可

 
2、assert斷言,很方便,測試人員常常在寫自動化用例的時候用的比較多
  如下,直接將預期結果和實際結果做判斷 
      def true_code():
    x = 3
    y = 2
    z = x + y
    assert(5==z), "z不等於5"

def false_code():
    x = 3
    y = 3
    z = x + y
    assert(5==z), "z不等於5"

true_code()
false_code()

  執行結果如下:

  

 
 
3、pdb互動式原始碼除錯
  常用命令:break或b  設定斷點
       continue或c  繼續執行程式,或跳到下個斷點
       list或l  檢視當前行的程式碼段
       step或s  進入函式
       return或r  執行程式碼知道從當前函式返回
       exit或q  中止並退出
       next或n  執行下一行
       p或!   列印變數的值例如a為變數,則輸入p a
       help或h   幫助
  在使用pdb時需要匯入pdb庫,然後在程式碼中需要的地方引入pdb程式碼片段,如下:  
1 import pdb
2 
3 if __name__ == "__main__":
4  a = 1
5  pdb.set_trace() #建立pdb程式碼片段
6  b = 2
7  c = a + b
8  print(c)

  輸入pdb命令,並且檢視結果:

    


 
4、日誌,定位問題記錄程式執行情況
  主要是引入logging庫
  logging模組提供了標準的日誌介面,你可以通過它儲存各種格式的日誌,logging的日誌可以分為  debug(), info(), warning(), error() and critical()5個級別,根據需要選擇不同的級別列印日誌

 
5、IDE Debuger 圖形介面便於資料檢視,支援多執行緒除錯,遠端除錯
  主要是IDE中自帶的debug除錯
  設定斷點,執行時以debug模式執行,或這shift+F9執行

相關文章