前言
- print很好用,遇到錯誤就print,實在不行就多幾個pirnt
- 這樣就出現了滿屏幕的print,麻煩而且不省事,當然,在你明確知道某個位置可能會出錯,print還是很有用
- 但只會用print遠遠不夠,你需要在一片代碼中快速定位到bug,本篇博客介紹如何使用pycharm的代碼調試功能
pycharm 的 debug
- pycharm提供了非常強大的debug功能
- 以下面代碼為例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 調試:
def add(*args):
sum = 0
for item in args:
sum += item
return sum
if __name__ == '__main__':
sum = add(1,2,3,4,5,6,7,8,9,10)
print(sum)
打開調試的幾種方式
- 鼠標右鍵選擇 Debug

- 代碼調試入口
if __name__ == '__main__':處單機選擇 Debug

- 快捷啟動方式,菜單工作區域

- ...打開調試的方式有很多,選一種即可
斷點
- 含義: 斷點(Breakpoint)即中斷操作,只有繼續手動執行才繼續下一步操作
- 打斷點: 點擊需要加斷點的代碼行,如下:

左側紅點就表示此處有斷點

調試模式
運行Debug(調試)模式,結果如下
- 變量區域: 可以查看變量的執行流程和變化
- 藍色代碼行: 藍色代碼行表示debug下一步要執行的操作,變量區域顯示的是上一行的變量執行結果

認識功能鍵
- 右側紅框功能菜單,鼠標懸停后有提示各菜單的功能
- 橫排紅框功能菜單,是主要操作功能菜單

橫排操作功能區
口訣
7進,8出,9跳
- 7進: F7(step into),在單步執行時,遇到子函數就進入並且繼續單步執行,有的會跳到源代碼里面去執行
- 8出: shift+F8(step out),跳出函數體,返回到調用此函數的地方
- 9跳: F9(Resume program),跳過當前斷點
其他功能鍵
- F8(step over): 在單步執行時,程序代碼會越過子函數,但子函數會執行,且不進入.(不存在子函數是,與F7作用一樣)
- Alt+Shift+F7(step into my code): 在單步執行時,遇到子函數就進入並且繼續單步執行,不會進入到源碼中
一般操作流程
- 設置斷點
- 打開Debug模式
- F7/F8單步執行
- F9結束,跳到下一個斷點
總結
- 調試模式在代碼量增多或者找其他人寫的代碼bug,很有用
- 本篇博客只停留在調試模式的基礎,但是掌握了基礎,再去解決深層次的問題,只是時間問題
