不管是資深程式設計師或初學寫程式,撰寫完成事後總是會執行看看,但不一定就會如預期般執行。一旦發生此狀況,找出問題的原因是每個程式設計人員的必經之路,不管是與語法地不熟或邏輯上的問題,有時盯著程式碼好幾個小時仍然找不出問題的癥結點,此時靠著偵錯工具將會是事半功倍,VS Code 工具支援多種開發語言及 Extensions,還記得之前筆者安裝了 Python extension for VS Code 擴充套件後,即可輕鬆變成IDE的開發環境,就來談談這個除錯的環境與運用。
用 Telegram 訂閱【挨踢路人甲】最新文章:https://t.me/itwshare
[insert-ad]
安裝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檔案」。
[insert-ad]
此時程式會運行到你指定的中斷點上(藍色框),紅色框內則是進行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)內的中斷點上。
[insert-ad]
一直按F10(Step Over)即可一步一步了解多重迴圈的運作,讓你對迴圈能有更深一層的體認。
在除錯當中,也可以隨時改變變數,例如下圖當要進入i=3,j=1時,筆者點擊i變數兩下,並修改內容為6,按下F10發現終端機畫面已經從6x1=6開始了。
你可以嘗試改變任何變數,有時在除錯中更能找出問題的所在。
除了既有的變數查看外,也可以自訂計算變數,如下圖在WATCH區上按下【+】圖示鈕來增加想要查看的計算值。
如筆者輸入i*j來查看變化。
[insert-ad]
一樣按F10來自己慢慢的體驗,看畫面說明不如自己實作一次喔!
延伸閱讀:
商品推薦
- 新聞速報 / Nike Hyperdunk 2014 Kyrie Irving "Notebook" PE
- 去Snoopy Cafe不忘買手信!史努比 X Life文具,限量質感Notebook粉絲必藏〜
- 2020高效能2D/3D繪圖筆電推薦:微星MSI、惠普HP、戴爾Dell
- 小米Mi Notebook Pro比蘋果Macbook Pro更強?4個硬件規格大對比
- 做出屬於你的旅遊書!旅行不能就這樣完結,旅人手帳跟著教學也能設計出美美的!
- 新聞速報 / Nike Hyperdunk 2014 Kyrie Irving PE
- Prada 推出平價文具!與日本人氣文具品牌 TRAVELER’S COMPANY 展開聯名
- 新聞速報 / Kyrie Irving 10 大 PE 鞋款
- Python 初學者的懶人包 Anaconda 下載與安裝
- 星野集團 × TRAVELER’S COMPANY 聯名商品 文具控超想收!
- 最燥男團 C.T.O 最真專訪!自爆王子形象超難維持 私底下各個都有怪異習慣?
- 薑還是老的辣!資生堂經典不敗系列『夢思嬌』,好用到一再回購!
- 連IU都在穿,不跟不行!老爹鞋時尚再進化NB708強勢回歸!
- 京東購物教學 – 註冊挑選優惠產品,購買海外手機流程與常見問題
- 簡單壁紙×燈飾就超有浪漫聖誕感!女孩會愛~居家聖誕佈置用品
- 火鍋從北吃到南!精選全台灣人氣鍋物料理店,入手超值餐券讓你秋冬也能暖到心坎裡~
- 選對塵蟎吸塵器,跟過敏說掰掰!比較市售塵蹣機差異
- 滿滿CC美白!根本是滑嫩好肌膚的助攻手!
- 房間只要這一「掛」,無敵海景、陽光森林、魔幻夜空任妳挑選
- PTT、Dcard討論度超高人氣內衣!玉如阿姨、黛瑪內衣,5大女孩們必敗的平價內衣品牌
- 迪士尼推出全新「奇奇蒂蒂系列」,超實用奇奇蒂蒂坐墊、收納包、耳朵帽,通通可愛必收
- 因為有妳可以克服任何困難!12星座只有在愛上你才會有的「暖心舉動」~(中)
- 超喜歡他的插畫~把你常說的話都畫出來!超有梗~超可笑!以下這些詞語你知道幾個呢?
- 夏季來臨~最容易「流汗脫妝」的SIS們注意了!快來檢查你有沒有每個步驟都做到!讓你的妝容完整服貼12hr!
- 歐美瘋傳的心測️你最被哪一個玻璃罐吸引?看你的夢中情人是什麼樣子~
- 超夢幻的彩虹玫瑰!是女生們都想收的~花語是「完美,無可挑剔,幸福之花」!
- Gogoro × MUJI 推出聯名車款!「Viva Plus 無印白」霧面車身,我很可以!
- 高人氣豆漿機推薦!豆漿機清洗方法、使用步驟,推薦排行榜大公開!
- 正式迎接2020下半年!12星座「桃花運」大解析來了~(下)
- 臉太大修圖修的心好累!常見臉型的「顯瘦穿搭」公式~原來長臉要穿「這個」!