pycharm中的調(diào)試功能使用及說明
更新時間:2025年05月22日 09:51:14 作者:不輝放棄
這篇文章主要介紹了pycharm中的調(diào)試功能使用及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
一、調(diào)試前的準(zhǔn)備工作??
1. 準(zhǔn)備一段測試代碼
先寫一個簡單的Python腳本(比如計算階乘),故意留點問題:
def factorial(n):
result = 1
for i in range(n):
result *= i
return result
print(factorial(5)) # 預(yù)期輸出120,但實際輸出0?2. 為什么需要調(diào)試?
- 當(dāng)代碼運行結(jié)果不符合預(yù)期時,調(diào)試能幫你逐行跟蹤代碼執(zhí)行過程。
- 可以查看變量值的變化,找出邏輯錯誤。
??二、調(diào)試核心操作(帶截圖步驟)??
??1. 設(shè)置斷點(Breakpoint)??
- ??作用??:讓程序運行到此處時暫停,方便觀察。
- ??操作??:在代碼行號左側(cè)單擊,出現(xiàn)紅點。
- (示例:在第3行
result = 1和第5行result *= i設(shè)置斷點)
??2. 啟動調(diào)試模式??
- ??方法1??:點擊右上角的綠色甲蟲圖標(biāo) ??。
- ??方法2??:右鍵代碼 → 選擇
Debug '文件名'。
??3. 調(diào)試界面布局??
啟動調(diào)試后,PyCharm 會自動進入調(diào)試視圖,主要分為:
- ??① 調(diào)試工具欄??:控制代碼執(zhí)行(步進、恢復(fù)等)。
- ??② 變量窗口(Variables)??:顯示當(dāng)前作用域內(nèi)的變量值。
- ??③ 控制臺(Console)??:顯示程序輸出和輸入。
??三、關(guān)鍵調(diào)試按鈕詳解??
| 按鈕圖標(biāo) | 名稱 | 快捷鍵 | 作用說明 |
|---|---|---|---|
| ?? | Resume | F9 | 繼續(xù)執(zhí)行程序,直到下一個斷點或結(jié)束。 |
| ?? | Step Over | F8 | 執(zhí)行當(dāng)前行代碼,??不進入??函數(shù)或循環(huán)內(nèi)部。 |
| ?? | Step Into | F7 | 執(zhí)行當(dāng)前行代碼,??進入??函數(shù)內(nèi)部(比如調(diào)試自定義函數(shù)時用)。 |
| ?? | Step Out | Shift+F8 | 從當(dāng)前函數(shù)內(nèi)部跳出,回到調(diào)用它的位置。 |
| ?? | Stop | Ctrl+F2 | 終止調(diào)試進程。 |
??四、實際調(diào)試流程(以示例代碼為例)??
??1. 第一次暫停(斷點:第3行)??
- ??觀察變量窗口??:此時
n=5,result=1(正確)。 - ??點擊
Step Over(F8)??:執(zhí)行result = 1。
??2. 進入循環(huán)(斷點:第5行)??
??點擊 Step Over(F8)多次??,觀察每次循環(huán)時 i 和 result 的變化:
- ??問題暴露??:第一次循環(huán)時
i=0,導(dǎo)致result *= 0,結(jié)果變?yōu)?! - ??錯誤原因??:
range(n)生成的是[0,1,2,3,4],應(yīng)從1開始循環(huán)。
??3. 修復(fù)代碼??
修改循環(huán)范圍:for i in range(1, n+1):
??五、調(diào)試進階技巧??
1. ??條件斷點(Conditional Breakpoint)??
- ??作用??:當(dāng)滿足特定條件時暫停。
- ??設(shè)置??:右鍵斷點 → 輸入條件(如
i == 3)。
2. ??監(jiān)視表達式(Watches)??
- ??作用??:實時監(jiān)控某個變量或表達式的值。
- ??操作??:在
Watches窗口點擊+→ 輸入表達式(如i * 2)。
3. ??重新運行調(diào)試??
- 修改代碼后無需關(guān)閉調(diào)試,直接點擊調(diào)試按鈕重新啟動。
??六、常見問題排查??
1. ??調(diào)試時程序沒有暫停???
- 檢查是否設(shè)置了斷點。
- 確保代碼確實執(zhí)行到了斷點位置。
2. ??變量窗口沒有顯示值???
- 確認程序已暫停在斷點處。
- 檢查變量是否在當(dāng)前作用域內(nèi)(比如循環(huán)內(nèi)部變量需在循環(huán)中查看)。
3. ??如何調(diào)試報錯行???
- 當(dāng)程序拋出異常時,PyCharm 會自動跳轉(zhuǎn)到錯誤行,并顯示堆棧信息。
總結(jié):調(diào)試的核心思路??
- ??定位問題區(qū)域??:通過錯誤提示或日志縮小范圍。
- ??設(shè)置斷點??:在可疑代碼前后暫停。
- ??逐行跟蹤??:觀察變量是否符合預(yù)期。
- ??驗證修復(fù)??:修改后重復(fù)調(diào)試直到正確。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python?中將數(shù)字轉(zhuǎn)換為字母的方法
本文詳細介紹了在 Python 中將數(shù)字轉(zhuǎn)換為字母的幾種常用方法,我們介紹了使用 chr() 函數(shù)、string 模塊和 ord() 函數(shù)等方法,并提供了示例代碼幫助你理解和應(yīng)用這些方法,感興趣的朋友跟隨小編一起看看吧2023-06-06
Python hexstring-list-str之間的轉(zhuǎn)換方法
今天小編就為大家分享一篇Python hexstring-list-str之間的轉(zhuǎn)換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
Python數(shù)據(jù)的標(biāo)準(zhǔn)輸出與格式化輸出
這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)的標(biāo)準(zhǔn)輸出與格式化輸出的相關(guān)資料,和大多數(shù)語言一樣,Python也是用print()函數(shù)來進行輸出,需要的朋友可以參考下2023-08-08
淺談python函數(shù)之作用域(python3.5)
下面小編就為大家?guī)硪黄獪\談python函數(shù)之作用域(python3.5)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10

