使用IDLE調試器調試Python程序

  • 推薦自己的專欄:分享一些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。

  1. 運行IDLE並打開程序源代碼test. py。

  2. 設置斷點。在想要調試的語句上,通過鼠標右鍵快捷菜單[SetBreakpoint]設置斷點,設置了斷點的代碼行底色爲黃色,如下圖所示。也可以通過[Clear Breakpoint] 清除已經設置的斷點。

  3. 打開調試器。在IDLE窗口,運行程序(按快捷鍵[F5] 或者點擊[Run] | [Run Module])。

    在彈出的Python解釋器命令行窗口,

    通過執行菜單命令[Debug] | [Debugger] ,打開調試器窗口,

    請確保[Debugger]菜單處於選中狀態,此時Python解釋器命令行窗口顯示[DEBUG ON]。在調試器[Debug Control] 窗口,選中Source和Globals複選框。

  4. 調試運行程序。在IDLE窗口,運行程序(按快捷鍵[F5] 或者點擊[Run] | [Run Module])。程序在代碼的第一行中斷暫停。 底色爲灰色的代碼爲當前執行代碼行。

    用戶可以通過[Debug Control] 窗口查看程序運行狀態(調用堆棧Stack、局部變量Locals、全局變量Globals),執行下一步調試命令。

  5. 在[Debug Control] 窗口中單擊運行調試命令[Go],使程序運行到下一個斷點處中斷暫停。

  6. 查看程序運行狀態。查看局部變量Locals和全局變量Globals。 此時n爲3。

  7. 在[Debug Control] 窗口中單擊運行調試命令 [Over],單步執行命令。由於n爲3,故程序跳轉到else後的第一條語句。

  8. 繼續執行其它調試命令。(注: 運行調試命令 [Go] 執行到下一個斷點[Step] 進入函數[Over]單步執行[Out]跳出函數[Quit]退出結束調試)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章