Pycharm?debug程序,跳轉至指定循環(huán)條件/循環(huán)次數(shù)問題
Pycharm debug程序,跳轉至指定循環(huán)條件/循環(huán)次數(shù)
在斷點出右鍵,然后設置條件

示例
for i in range(1,100):
a = i + 1
b = i + 2
print(a, b, i)注意:
1、你應該debug斷點在循環(huán)后的位置而不是循環(huán)上的位置,然后你就可以設置你的條件進入到指定的循環(huán)上了

2、設置條件,要使用等于符號“==”而不是賦值符號“=”
3、在設置斷點條件的位置,條件應該是出現(xiàn)過的變量,
例如下面設置“a==15”是正確的、“b==15”就是錯誤的,因為b在這一行運行之前還沒有出現(xiàn)

在運行過程中設置條件,從而直接運行到這次的條件循環(huán),而不需要重新debug
例如此時你設置了斷點,但是沒有設置斷點條件,此時i=1是第一次循環(huán)

此時你想調到第15次循環(huán),也就是條件“I==15”,那么你不需要重新debug,而只需要在本次運行中設置循環(huán)條件,然后直接“Step out”就可以了【Shift + F8】

成功進入第15次循環(huán):

Pycharm中Debug的高級技巧
1.斷點條件調試
有這樣一個場景,代碼 DeBug 的時候,我想知道下面代碼 index 為 10 時, date_1的值是什么,正常來說要 代碼 DeBug 循環(huán) 10 次,很不方便。

在 IDE 中有個條件斷點,只需設置好變量條件,只有當某個變量等于你設置的條件的值時,斷點就會自動停下。
首先右擊第 24 行的斷點,給 Conditon 設置變量條件 index == 10,并點擊 Done 保存設置。

當 index 的值為 10 時,DeBug 就會自動停下,效果如下圖

2.計算表達式
當我們 Debug 某個方法時,有時候會忘了傳入某個參數(shù)或者傳錯了,這個時候又不想重新Debug,
就可以通過計算表達式來設置某個變量的值,如下圖,發(fā)現(xiàn) day_int = 367 不是期望的值,可以鼠標右擊下面藍色的 day_int , 選擇 Set Value, 對 day_int 臨時修改值

下面的代碼程序會根據(jù)重新賦的值向下運行,可以看到變量 num_30 的值是 200 整除 30 的結果。

3.調試神器 pdb
準備文件
在調試之前先將這兩個文件準備好(做為演示用),并放在同級目錄中。
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----
進入調試模式 (主要有兩種方法)
做為腳本調用,方法很簡單,就像正常執(zhí)行python腳本一樣,只是多加了-m pdb
ptyhon -m pdb pdb_demo.py
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
keras tensorflow 實現(xiàn)在python下多進程運行
今天小編就為大家分享一篇keras tensorflow 實現(xiàn)在python下多進程運行,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
opencv+playwright滑動驗證碼的實現(xiàn)
滑動驗證碼是常見的驗證碼之一,本文主要介紹了opencv+playwright滑動驗證碼的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2023-11-11
淺析Python中將單詞首字母大寫的capitalize()方法
這篇文章主要介紹了淺析Python中將單詞首字母大寫的capitalize()方法,是Python入門中的基礎知識,需要的朋友可以參考下2015-05-05
為2021年的第一場雪錦上添花:用matplotlib繪制雪花和雪景
這篇文章主要介紹了為2021年的第一場雪錦上添花:用matplotlib繪制雪花和雪景,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01

