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...