不管是資深程式設計師或初學寫程式,撰寫完成事後總是會執行看看,但不一定就會如預期般執行。一旦發生此狀況,找出問題的原因是每個程式設計人員的必經之路,不管是與語法地不熟或邏輯上的問題,有時盯著程式碼好幾個小時仍然找不出問題的癥結點,此時靠著偵錯工具將會是事半功倍,VS Code 工具支援多種開發語言及 Extensions,還記得之前筆者安裝了 Python extension for VS Code 擴充套件後,即可輕鬆變成IDE的開發環境,就來談談這個除錯的環境與運用。
用 Telegram 訂閱【挨踢路人甲】最新文章:https://t.me/itwshare
安裝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來自己慢慢的體驗,看畫面說明不如自己實作一次喔!