Pycharm?debug程序,跳轉(zhuǎn)至指定循環(huán)條件/循環(huán)次數(shù)問題
Pycharm debug程序,跳轉(zhuǎn)至指定循環(huán)條件/循環(huán)次數(shù)
在斷點(diǎn)出右鍵,然后設(shè)置條件
示例
for i in range(1,100): a = i + 1 b = i + 2 print(a, b, i)
注意:
1、你應(yīng)該debug斷點(diǎn)在循環(huán)后的位置而不是循環(huán)上的位置,然后你就可以設(shè)置你的條件進(jìn)入到指定的循環(huán)上了
2、設(shè)置條件,要使用等于符號“==”而不是賦值符號“=”
3、在設(shè)置斷點(diǎn)條件的位置,條件應(yīng)該是出現(xiàn)過的變量,
例如下面設(shè)置“a==15”是正確的、“b==15”就是錯誤的,因?yàn)閎在這一行運(yùn)行之前還沒有出現(xiàn)
在運(yùn)行過程中設(shè)置條件,從而直接運(yùn)行到這次的條件循環(huán),而不需要重新debug
例如此時你設(shè)置了斷點(diǎn),但是沒有設(shè)置斷點(diǎn)條件,此時i=1是第一次循環(huán)
此時你想調(diào)到第15次循環(huán),也就是條件“I==15”,那么你不需要重新debug,而只需要在本次運(yùn)行中設(shè)置循環(huán)條件,然后直接“Step out”就可以了【Shift + F8】
成功進(jìn)入第15次循環(huán):
Pycharm中Debug的高級技巧
1.斷點(diǎn)條件調(diào)試
有這樣一個場景,代碼 DeBug 的時候,我想知道下面代碼 index 為 10 時, date_1的值是什么,正常來說要 代碼 DeBug 循環(huán) 10 次,很不方便。
在 IDE 中有個條件斷點(diǎn),只需設(shè)置好變量條件,只有當(dāng)某個變量等于你設(shè)置的條件的值時,斷點(diǎn)就會自動停下。
首先右擊第 24 行的斷點(diǎn),給 Conditon 設(shè)置變量條件 index == 10,并點(diǎn)擊 Done 保存設(shè)置。
當(dāng) index 的值為 10 時,DeBug 就會自動停下,效果如下圖
2.計算表達(dá)式
當(dāng)我們 Debug 某個方法時,有時候會忘了傳入某個參數(shù)或者傳錯了,這個時候又不想重新Debug,
就可以通過計算表達(dá)式來設(shè)置某個變量的值,如下圖,發(fā)現(xiàn) day_int = 367 不是期望的值,可以鼠標(biāo)右擊下面藍(lán)色的 day_int , 選擇 Set Value
, 對 day_int 臨時修改值
下面的代碼程序會根據(jù)重新賦的值向下運(yùn)行,可以看到變量 num_30 的值是 200 整除 30 的結(jié)果。
3.調(diào)試神器 pdb
準(zhǔn)備文件
在調(diào)試之前先將這兩個文件準(zhǔn)備好(做為演示用),并放在同級目錄中。
utils.py
def sum(mylist): result = 0 for item in mylist: result += item return result
- pdb_demo.py
import utils def myfunc(mylist): result = utils.sum(mylist) print(result) if __name__ == '__main__': print("----start----") myfunc([1,2,3,4]) print("----end-----")
輸出:
----start----
10
----end----
進(jìn)入調(diào)試模式 (主要有兩種方法)
做為腳本調(diào)用,方法很簡單,就像正常執(zhí)行python腳本一樣,只是多加了-m pdb
ptyhon -m pdb pdb_demo.py
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于numpy中eye和identity的區(qū)別詳解
今天小編就為大家分享一篇關(guān)于numpy中eye和identity的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11Python動態(tài)演示旋轉(zhuǎn)矩陣的作用詳解
一個矩陣我們想讓它通過編程,實(shí)現(xiàn)各種花樣的變化怎么辦呢?下面這篇文章主要給大家介紹了關(guān)于Python動態(tài)演示旋轉(zhuǎn)矩陣的作用,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12keras tensorflow 實(shí)現(xiàn)在python下多進(jìn)程運(yùn)行
今天小編就為大家分享一篇keras tensorflow 實(shí)現(xiàn)在python下多進(jìn)程運(yùn)行,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02opencv+playwright滑動驗(yàn)證碼的實(shí)現(xiàn)
滑動驗(yàn)證碼是常見的驗(yàn)證碼之一,本文主要介紹了opencv+playwright滑動驗(yàn)證碼的實(shí)現(xiàn),具有一定的參考價值,感興趣的可以了解一下2023-11-11淺析Python中將單詞首字母大寫的capitalize()方法
這篇文章主要介紹了淺析Python中將單詞首字母大寫的capitalize()方法,是Python入門中的基礎(chǔ)知識,需要的朋友可以參考下2015-05-05python、Matlab求定積分的實(shí)現(xiàn)
今天小編就為大家分享一篇python、Matlab求定積分的實(shí)現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11為2021年的第一場雪錦上添花:用matplotlib繪制雪花和雪景
這篇文章主要介紹了為2021年的第一場雪錦上添花:用matplotlib繪制雪花和雪景,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01