CodeGym /課程 /Python SELF TW /PyCharm Debug

PyCharm Debug

Python SELF TW
等級 18 , 課堂 3
開放

9.1 啟動除錯器

我們將基於 PyCharm 來學習除錯過程,這是很有道理且愉快的選擇。 現在你馬上就會了解。

在 PyCharm 中可以以兩種模式運行你的程序:

程序運行模式 工具欄圖示 快捷鍵
正常執行 Shift+F10
除錯模式運行 Shift+F9

你應該對正常模式很熟悉:程式會啟動,執行並結束。但除錯模式會給你帶來不少驚喜。

除錯模式

除錯模式允許你逐步執行整個程式。或者更準確地說, 逐行:一行一行地執行。這樣你可以在程式的每一步(每執行一行代碼後)觀察變數的值。甚至可以改變它們的值!

為了掌握除錯程序的技巧,你需要了解三件事:

  • 停止點
  • 逐步執行
  • 檢視變數的值

9.2 停止點 (Break Points)

IDE 允許你在代碼中設置特別的標記——停止點 (break point)。每當除錯模式下運行的程式達到被標記為 break point 的行時,它將會暫停。

在特定的行設置 break point,只需在 PyCharm 中點擊該行的左側。示例:

結果是該行將被標記為停止點 (break point),PyCharm 會將整行顯示為紅色:

左側面板再點擊一次即可移除設置的 break point

也可以在當前的行使用快捷鍵來簡單設置 break point——Ctrl+F8。如果該行已經有 break point,再次按下 Ctrl+F8 會刪除它。

9.3 除錯模式下運行程序

如果你的程式中有至少一個停止點,你可以啟動程式的除錯模式(Shift+F9 或「蟲子圖示」)。

在除錯模式下運行後,程式會正常執行。但是一旦程式到達被標記為 break point 的行時,它將會暫停。示例:

在螢幕上方,你可以看到程式碼中有兩個停止點。程式停在了第 2 行——被藍線標記。第 2 行尚未執行:目前還沒有輸出到控制台。

在螢幕下方,你可以看到除錯器的面板:Thread & variables面板、Console(屏幕輸出),還有除錯模式的按鈕。

如果你想取消程式的暫停(繼續執行),可以按左下方面板的 Resume Program 按鈕(或按 F9 鍵)。

按下該按鈕(或 F9)後,程式將繼續運行,直到遇到下一個停止點或者程式結束。按下按鈕後,我們將看到這樣的場景:

程式停在了第二個停止點,而控制台輸出了 "Hello""and"——這表明三行輸出中只有兩行已執行。

9.4 逐步執行

如果你的程式正在除錯模式下運行,你也可以逐步執行它:一步一步,一條行為單位。對於逐步執行有兩個快捷鍵:F7 和 F8:每個都會導致執行當前的代碼行。但首先你需要設置 break point 來暫停你的程式。

如果你想逐行執行程式,則需要在程式的第一行代碼設置 break point,並在除錯模式下運行它。

當程式暫停後,你可以開始逐行執行。按下一次 F8 鍵就會執行一行。

當程式暫停並按下一次 F8 鍵後,我們的程式看起來像這樣:

第一行——print("Hello")——已執行,目前是第二行。你也可以在截圖的下半部分看到,螢幕已經輸出了 "Hello"

9.5 逐步執行進入函數

如果程式中有你自定義的函數,並且你希望在除錯模式下程式不僅逐步執行,還能進入你的函數,那麼要「進入函數」,你需要按的不是 F8,而是 F7。

假設你正在程序的第 5 行逐步執行。如果按下 F8,PyCharm 只會執行第五行並移至第六行。

但如果按下 F7,PyCharm 將會逐步執行 hello() 函數:

非常簡單。如果你對方法內部發生的事情不太在意,就按 F8;如果你在意,就按 F7 並逐步執行整個代碼。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION