速看,全網最實用的Debug除錯技巧彙總

一、思考

速看,全網最實用的Debug除錯技巧彙總

1、什麼是debug

● 找茬

◆ 找軟體的茬

◆ 發現程式的缺陷

2、為什麼需要debug?

速看,全網最實用的Debug除錯技巧彙總

● 誰都不敢保證,寫的程式碼沒有任何問題

● 高效查詢軟體異常

● 一位優秀的開發工程師

◆ 20%的時間寫程式碼

◆ 80%的時間用來排錯

“不會debug” == “不會程式碼” == “低工資”

3、debug需要具備哪些功能?

速看,全網最實用的Debug除錯技巧彙總

● 控制程式的執行

◆ 想停則停,想執行則執行

◆ 隨心所欲

● 設定斷點

◆ 在指定位置停止

● 檢視當前名稱空間(程式棧)中變數

二、Python中的Debug大法

案例程式碼如下所示:

建立deubg_skills_demo。py檔案

速看,全網最實用的Debug除錯技巧彙總

速看,全網最實用的Debug除錯技巧彙總

速看,全網最實用的Debug除錯技巧彙總

建立gifts。py檔案

速看,全網最實用的Debug除錯技巧彙總

1、Pdb操作

速看,全網最實用的Debug除錯技巧彙總

● 系統自帶的debug工具(無需安裝)

● 將以下程式碼放在需要除錯的地方(類似於設定斷點)

速看,全網最實用的Debug除錯技巧彙總

● 當程式執行到上述程式碼所在位置時,會自動開啟一個console終端

◆ “->”是接下來要執行的程式碼(當前還未執行)

速看,全網最實用的Debug除錯技巧彙總

● 可以在終端執行的命令

◆ list或者l

◆ 顯示當前執行的程式碼

◆ 預設列出11行程式碼

速看,全網最實用的Debug除錯技巧彙總

● p變數名或者p需要執行的表示式

◆ 列印變數的值

速看,全網最實用的Debug除錯技巧彙總

● step或者s

◆ 如果在函式呼叫處執行,則會進入函式體內部

速看,全網最實用的Debug除錯技巧彙總

速看,全網最實用的Debug除錯技巧彙總

● next或者n

◆如果在函式呼叫處執行,則不會進入函式體內部

速看,全網最實用的Debug除錯技巧彙總

● enter

◆ 重複執行上一次的命令

● b(reak) [ ([filename:]lineno | function) [, condition] ]

◆ 設定斷點

◆ filename可選,如果不傳,預設在當前檔案設定斷點

速看,全網最實用的Debug除錯技巧彙總

速看,全網最實用的Debug除錯技巧彙總

● c或者continue

◆ 繼續往下執行,在下一個斷點處停下來

速看,全網最實用的Debug除錯技巧彙總

● disable斷點編號

◆ 禁用斷點

速看,全網最實用的Debug除錯技巧彙總

● enable斷點編號

◆ 啟用斷點

● cl或者clear 斷點編號

◆ 清除斷點

速看,全網最實用的Debug除錯技巧彙總

● display或者undisplay 變數

◆ 監聽或者不監聽某個變數

◆ 如果變數值改變,會自動顯示

速看,全網最實用的Debug除錯技巧彙總

● h或者help

◆ 幫助資訊

速看,全網最實用的Debug除錯技巧彙總

● h具體命令

◆ 具體命令的幫助文件

● h pdb

◆ pdb的完整文件

三、Pycharm debug操作

速看,全網最實用的Debug除錯技巧彙總

1、開啟Python Prompt

速看,全網最實用的Debug除錯技巧彙總

會出現一個ipython的控制檯

● 可在控制檯檢視當前名稱空間中的變數

● 也可執行Python表示式

速看,全網最實用的Debug除錯技巧彙總

2、Step Over/F8

● 按除錯工具欄中的

速看,全網最實用的Debug除錯技巧彙總

● 類似於pdb中的next

● 程式不會進入到函式體內部

3、Step Into/F7

● 按除錯工具欄中的

速看,全網最實用的Debug除錯技巧彙總

● 類似於pdb中的step

● 程式會進入到函式(方法)體內部、系統原始碼、第三方模組原始碼中

4、Step Out/Shift+F8

● 從函式體內部跳出

速看,全網最實用的Debug除錯技巧彙總

5、Step Into My Code

Step Into My Code / ALT+Shift+F7

● 按除錯工具欄中的

速看,全網最實用的Debug除錯技巧彙總

● 主要關注自己寫的程式碼

● 從系統原始碼、第三方模組原始碼中跳到自己寫的程式碼中

6、Evaluate Expression

速看,全網最實用的Debug除錯技巧彙總

● 在當前名稱空間內計算表示式的值

7、Quick Evaluate Expression

● 快速計算表示式的值

速看,全網最實用的Debug除錯技巧彙總

速看,全網最實用的Debug除錯技巧彙總

8、Watching

速看,全網最實用的Debug除錯技巧彙總

● 類似於pdb中的display

● 可以監聽某個變數或者表示式的值

四、總結

速看,全網最實用的Debug除錯技巧彙總

● 作為程式碼編寫者,掌握程式碼的除錯技巧是必備的

● 能提升工作效率,提高程式碼質量

● Python中Debug除錯工具和技巧非常多

● 最常用、最實用的知識點,本文均有覆蓋

本文由檸檬班可優老師原創,轉載需註明出處!