Python 是一個高層次的結合瞭解釋性、編譯性、互動性和麪向對象的腳本語言。 |
一、printhtml
print('here')
# 能夠發現某段邏輯是否執行
# 打印出變量的內容
最簡單 print()
只是影響代碼美觀,並且須要在後面刪掉,比較麻煩python
斷言
凡是用print來輔助查看的地方,均可以用斷言(assert)來替代:linux
def main(): foo('0')# err.py def foo(s): n = int(s) assert n != 0, 'n is zero!' return 10 / n
二、assert工具
assert false, 'blabla'
# 若是條件不成立,則打印出 'blabla' 並拋出AssertionError異常
assert 語句的做用是:當條件表達式的值爲真時,該語句什麼也不作,程序正常運行;反之,若條件表達式的值爲假,則 assert 會拋出 AssertionError 異常。其中,[,描述信息] 做爲可選參數,用於對條件表達式可能產生的異常進行描述。debug
例如:
程序運行結果爲:
請輸入您的年齡:10調試
Traceback (most recent call last): File "C:\Users\mengma\Desktop\1.py", line 3, in assert 20 < age < 80 , "年齡不在 20-80 之間" AssertionError: 年齡不在 20-80 之間
經過運行結果能夠看出,當 assert 中條件表達式的值爲假時,程序將拋出異常,並附帶異常的描述性信息,與此同時,程序當即中止執行。code
一般狀況下,assert 能夠和 try except 異常處理語句配合使用,之前面代碼爲例:htm
try: s_age = input("請輸入您的年齡:") age = int(s_age) assert 20 < age < 80 , "年齡不在 20-80 之間" print("您輸入的年齡在20和80之間") except AssertionError as e: print("輸入年齡不正確",e)
程序運行結果爲:對象
請輸入您的年齡:10 輸入年齡不正確 年齡不在 20-80 之間
經過在程序的適當位置,使用 assert 語句判斷變量或表達式的值,能夠起到調試代碼的做用。
當在命令行模式運行 Python 程序時,傳入 -O(注意是大寫)參數,能夠禁用程序中包含的 assert 語句。blog
三、debugger
能夠經過 pdb、IDE 等工具進行調試。
調試的具體方法這裏不展開。
Python 中有兩個內置方法在這裏也頗有幫助:
locals: 執行 locals() 以後, 返回一個字典, 包含(current scope)當前範圍下的局部變量。
globals: 執行 globals() 以後, 返回一個字典, 包含(current scope)當前範圍下的全局變量。
本文原創地址:https://www.linuxprobe.com/python-debugging-methods.html