python程式除錯方法總結

2021-09-20 18:41:15 字數 966 閱讀 2329

1. 使用assert / print

eg:

# err.py

def foo(s):

n = int(s)

assert n != 0, 'n is zero!'

return 10 / n

def main():

foo('0')

執行方式: python err.py

如執行時使用 -0 引數:python -0 err.py,則關閉assert,把assert當成pass使用。

2. 日誌列印:logging

等級有:debug, info, warning, error。等級逐漸提高,如設定level=info,則不會顯示debug資訊,會顯示warning和error的

eg:

import logging

logging.basicconfig(level=logging.info)

3. 使用pdb

pdb是針對python的,就好像gdb對於c一樣

eg: 

python -m pdb err.py
除錯過程中幾個命令 對應操作:

1 : 顯示**

n : 單步執行下一步

p *** : 顯示變數***的值,eg: p n(顯示n的值)

4. 設定斷點 pdb.set_trace()

在**中設定斷點

eg:

import pdb

s = '0'

n = int(s)

pdb.set_trace() # 執行到這裡會自動暫停

print 10 / n

程式除錯方法總結

在應用程式開發和除錯過程中,經常遇到這樣的問題 由於某個變數的值被錯誤地改變,導致程式出錯甚至crash,如果程式執行在多執行緒環境,或者程式邏輯非常複雜,我們想跟蹤這個變數的變化將會非常困難。有沒有辦法能夠在除錯過程中使程式自動在改變變數處斷點呢?這樣我們就能一一檢視該變數值的改變情況,從而發現到...

php程式除錯方法總結

相信很多朋友們都有除錯程式的經歷,然而很多時候除錯程式是痛苦而又漫長的過程 它不僅需要細心,更需要耐心,切忌心浮氣躁。但是當找出問題並順利解決它時,又會給人無比激動的喜悅。這裡總結一下筆者在程式除錯中的使用的原則,工具,以及方法。這裡需要說明的是,某些原則性的東西,各種語言都是差不多的,而涉及到具體...

python程式的除錯方法

本文討論在沒有方便的ide工具可用的情況下,使用pdb除錯python程式 原始碼例子 例如,有模擬稅收計算的程式 usr bin python def debug demo val if val 1600 print level 1 print 0 elif val 3500 print leve...