使用 Visual Studio Code 對 Python 程式進行除錯

不管是資深程式設計師或初學寫程式,撰寫完成事後總是會執行看看,但不一定就會如預期般執行。一旦發生此狀況,找出問題的原因是每個程式設計人員的必經之路,不管是與語法地不熟或邏輯上的問題,有時盯著程式碼好幾個小時仍然找不出問題的癥結點,此時靠著偵錯工具將會是事半功倍,VS Code 工具支援多種開發語言及 Extensions,還記得之前筆者安裝了 Python extension for VS Code 擴充套件後,即可輕鬆變成IDE的開發環境,就來談談這個除錯的環境與運用。

安裝Python extension for VS Code擴充套件,儼然讓你的Visual Studio Code輕鬆擁有IntelliSense, linting, debugging, code navigation, code formatting, Jupyter notebook support, refactoring, variable explorer, test explorer, snippets等眾多功能。一般常遇到的是撰寫 Python 時輔助帶出的 IntelliSense 與 Auto-Completion 功能,雖然對撰寫程式的語法有幫助,但無法完全顯示程式的問題與Bug,這時得靠除錯的環境來逐步執行程式碼,以方便找出程式設計錯誤的位置。

 

要進入除錯的環境中,設定中斷點是個相當重要的動作,因為這個中斷點就是你執行停止執行的位置,如下圖左側行數前點選即出現紅色的Breakpoint,此紅點就是待會進行debug執行時停止的位置。

 

一般執行測試程式都使用右上綠色框的執行鈕或是【CTrl + F5】快捷鍵,當然也可以在終端計畫面上直接輸入「python 程式名稱.py」,那除錯如何啟動呢?很簡單,就是使用功能表示的【Run】→【Start Debugging】,筆者都是使用【F5】快捷鍵較方便。

 

此時進入Debug Configruation選單上(好像升級VS Code 1.47後就出現中文),選擇「Python 檔案 偵測目前使用中的python檔案」。

 

此時程式會運行到你指定的中斷點上(藍色框),紅色框內則是進行Debug中可以執行的快速按鈕,而綠色框內可以看到變數的數值。變數i與j怎麼是停止在i=4,j=2上呢?這主要是跟你指定的中斷點有關,也就是下圖中跑到i=4,j=2時才首次進入中斷點,所以中斷點的指定也是要有技巧的。

 

進入中斷點的程式是運作後,上方的快速按鈕有F5(繼續)、F10(下一行)、F11(進入)、Shift + F11(跳出)、Ctrl + Shift + F5(重新開始)和Shift + F5(停止)。

 

筆者按下F10(Step Over)則跳到下一個執行行,此時i的變數變成5,紅色框內的圖示符號表是目前執行到的位置。

 

再按F10(Step Over)往下來到if判斷處。

 

又再按一下F10(Step Over)並沒有停在中斷點上,那是因為判斷是質數,所以沒有進入if(i%j==0)內的中斷點上。

 

一直按F10(Step Over)即可一步一步了解多重迴圈的運作,讓你對迴圈能有更深一層的體認。

 

在除錯當中,也可以隨時改變變數,例如下圖當要進入i=3,j=1時,筆者點擊i變數兩下,並修改內容為6,按下F10發現終端機畫面已經從6×1=6開始了。

 

你可以嘗試改變任何變數,有時在除錯中更能找出問題的所在。

 

除了既有的變數查看外,也可以自訂計算變數,如下圖在WATCH區上按下【+】圖示鈕來增加想要查看的計算值。

 

如筆者輸入i*j來查看變化。

 

一樣按F10來自己慢慢的體驗,看畫面說明不如自己實作一次喔!

 

延伸閱讀:

Bloggerads載入中~

itwalker

或許技術與功力已遠遠不及時下年輕人,但試著去畫一個圓,圓不圓沒關係,盡力就好,如果覺得文章不錯的話,請大家按個「讚」或「+1」,感謝您的支持與鼓勵!歡迎加入我的粉絲團 : https://www.facebook.com/itwalker ,更多關於挨踢路人甲的文章: https://walker-a.com

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料