一、思考
1、什麼是debug
● 找茬
◆ 找軟體的茬
◆ 發現程式的缺陷
2、為什麼需要debug?
● 誰都不敢保證,寫的程式碼沒有任何問題
● 高效查詢軟體異常
● 一位優秀的開發工程師
◆ 20%的時間寫程式碼
◆ 80%的時間用來排錯
“不會debug” == “不會程式碼” == “低工資”
3、debug需要具備哪些功能?
● 控制程式的執行
◆ 想停則停,想執行則執行
◆ 隨心所欲
● 設定斷點
◆ 在指定位置停止
● 檢視當前名稱空間(程式棧)中變數
二、Python中的Debug大法
案例程式碼如下所示:
建立deubg_skills_demo。py檔案
建立gifts。py檔案
1、Pdb操作
● 系統自帶的debug工具(無需安裝)
● 將以下程式碼放在需要除錯的地方(類似於設定斷點)
● 當程式執行到上述程式碼所在位置時,會自動開啟一個console終端
◆ “->”是接下來要執行的程式碼(當前還未執行)
● 可以在終端執行的命令
◆ list或者l
◆ 顯示當前執行的程式碼
◆ 預設列出11行程式碼
● p變數名或者p需要執行的表示式
◆ 列印變數的值
● step或者s
◆ 如果在函式呼叫處執行,則會進入函式體內部
● next或者n
◆如果在函式呼叫處執行,則不會進入函式體內部
● enter
◆ 重複執行上一次的命令
● b(reak) [ ([filename:]lineno | function) [, condition] ]
◆ 設定斷點
◆ filename可選,如果不傳,預設在當前檔案設定斷點
● c或者continue
◆ 繼續往下執行,在下一個斷點處停下來
● disable斷點編號
◆ 禁用斷點
● enable斷點編號
◆ 啟用斷點
● cl或者clear 斷點編號
◆ 清除斷點
● display或者undisplay 變數
◆ 監聽或者不監聽某個變數
◆ 如果變數值改變,會自動顯示
● h或者help
◆ 幫助資訊
● h具體命令
◆ 具體命令的幫助文件
● h pdb
◆ pdb的完整文件
三、Pycharm debug操作
1、開啟Python Prompt
會出現一個ipython的控制檯
● 可在控制檯檢視當前名稱空間中的變數
● 也可執行Python表示式
2、Step Over/F8
● 按除錯工具欄中的
● 類似於pdb中的next
● 程式不會進入到函式體內部
3、Step Into/F7
● 按除錯工具欄中的
● 類似於pdb中的step
● 程式會進入到函式(方法)體內部、系統原始碼、第三方模組原始碼中
4、Step Out/Shift+F8
● 從函式體內部跳出
5、Step Into My Code
Step Into My Code / ALT+Shift+F7
● 按除錯工具欄中的
● 主要關注自己寫的程式碼
● 從系統原始碼、第三方模組原始碼中跳到自己寫的程式碼中
6、Evaluate Expression
● 在當前名稱空間內計算表示式的值
7、Quick Evaluate Expression
● 快速計算表示式的值
8、Watching
● 類似於pdb中的display
● 可以監聽某個變數或者表示式的值
四、總結
● 作為程式碼編寫者,掌握程式碼的除錯技巧是必備的
● 能提升工作效率,提高程式碼質量
● Python中Debug除錯工具和技巧非常多
● 最常用、最實用的知識點,本文均有覆蓋
本文由檸檬班可優老師原創,轉載需註明出處!