- 推薦自己的專欄:分享一些Python案例,將所學用出來
- 分析定位程序錯誤是程序設計最基本的功能。
- Python標準庫的調試器pdb提供了基本的調試功能:設置斷點、查看變量等。
集成開發環境 (IDE,例如IDLE、Spyder、 PyCharm) 則提供了更直接方便的調試器。
本案例,闡述使用IDLE調試器跟蹤調試Python程序的基本方法。
示例程序(test.py,模擬倒計時)
一個簡單的遞歸函數小程序
import time
def countdown(n):
"""從n倒計數到0"""
if n <= 0:
print("時間到!")
else:
time.sleep(1) # 睡眠1秒鐘
print(n)
countdown(n-1)
if __name__ == '__main__':
countdown(3)
程序正常運行結果如下:
3
2
1
時間到!
使用IDLE調試器調試運行程序
使用IDLE調試器調試運行程序示例程序test.py。
-
運行IDLE並打開程序源代碼test. py。
-
設置斷點。在想要調試的語句上,通過鼠標右鍵快捷菜單[SetBreakpoint]設置斷點,設置了斷點的代碼行底色爲黃色,如下圖所示。也可以通過[Clear Breakpoint] 清除已經設置的斷點。
-
打開調試器。在IDLE窗口,運行程序(按快捷鍵[F5] 或者點擊[Run] | [Run Module])。
在彈出的Python解釋器命令行窗口,
通過執行菜單命令[Debug] | [Debugger] ,打開調試器窗口,
請確保[Debugger]菜單處於選中狀態,此時Python解釋器命令行窗口顯示[DEBUG ON]。在調試器[Debug Control] 窗口,選中Source和Globals複選框。
-
調試運行程序。在IDLE窗口,運行程序(按快捷鍵[F5] 或者點擊[Run] | [Run Module])。程序在代碼的第一行中斷暫停。 底色爲灰色的代碼爲當前執行代碼行。
用戶可以通過[Debug Control] 窗口查看程序運行狀態(調用堆棧Stack、局部變量Locals、全局變量Globals),執行下一步調試命令。
-
在[Debug Control] 窗口中單擊運行調試命令[Go],使程序運行到下一個斷點處中斷暫停。
-
查看程序運行狀態。查看局部變量Locals和全局變量Globals。 此時n爲3。
-
在[Debug Control] 窗口中單擊運行調試命令 [Over],單步執行命令。由於n爲3,故程序跳轉到else後的第一條語句。
-
繼續執行其它調試命令。(注: 運行調試命令 [Go] 執行到下一個斷點; [Step] 進入函數; [Over]單步執行;[Out]跳出函數;[Quit]退出結束調試)。