python學習筆記012 pdb除錯

2021-09-07 16:11:17 字數 2533 閱讀 6222

pdb 是 python 自帶的乙個包,為 python 程式提供了一種互動的源**除錯功能,

主要特性包括設定斷點、單步除錯、進入函式除錯、檢視當前**、檢視棧片段、動態改變變數的值等

除錯作用 :

可以讓程式單步執行,觀察中間結果

可以設定指定斷點,進行特定位置觀察

完整命令

簡寫命令

描述args

a列印當前函式的引數

break

b設定斷點

clear

cl清除斷點

condition

無設定條件斷點

continue

c或者cont

繼續執行,知道遇到斷點或者指令碼結束

disable

無禁用斷點

enable

無啟用斷點

help

h檢視pdb幫助

ignore

無忽略斷點

jump

j跳轉到指定行數執行

list

l列出指令碼清單

next

n執行下條語句,遇到函式不進入其內部pp

列印變數值,也可以用print

quit

q退出 pdb

return

r一直執行到函式返回

tbreak

無設定臨時斷點,斷點只中斷一次

step

s執行下一條語句,遇到函式進入其內部

where

w檢視所在的位置!無

在pdb中執行語句

注意:2:輸入pdb不認識的命令,pdb會把他當做python語句在當前環境下執行;

1

import

pdb2 a = "

aaa"

3pdb.set_trace()

4 b = "

bbb"

5 c = "

ccc"

6 final = a + b +c

7print(final)

執行

> /home/tarena/桌面/t.py(4)()

-> b = "

bbb"

(pdb) n

> /home/tarena/桌面/t.py(5)()

-> c = "

ccc"

(pdb)

> /home/tarena/桌面/t.py(6)()

-> final = a + b +c

(pdb)

> /home/tarena/桌面/t.py(7)()

-> print

(final)

(pdb)

aaabbbccc

--return--

> /home/tarena/桌面/t.py(7)()->none

-> print

(final)

(pdb)

開始除錯:

直接執行指令碼,會停留在 pdb.set_trace()  處;pdb.set_trace() 的作用:從pdb.set_trace()位置處進入除錯狀態,在該語句後面的**單步執行

選擇 n+enter 可以執行當前的 statement。在第一次按下了 n+enter 之後可以直接按 enter 表示重複執行上一條 debug 命令。

import

pdbpdb.set_trace()

defa(n):

print(n + 1)

print(n + 2)

print(n + 3)

print(n + 4)

print(n + 5)

print(n + 6)

defb(n):

print('b'

,n) a(n + 1)

print("

b 結束")

defc():

x = 100b(x + 100)

c()

執行

> /home/tarena/桌面/t.py(4)()

-> def

a(n):

(pdb) n

> /home/tarena/桌面/t.py(12)()

-> def

b(n):

(pdb)

> /home/tarena/桌面/t.py(17)()

-> def

c():

(pdb)

> /home/tarena/桌面/t.py(21)()

->c()

(pdb)

b 200

202203

204205

206207b 結束

--return--

> /home/tarena/桌面/t.py(21)()->none

->c()

(pdb)

詳細**

Python學習筆記012

012 列表的一些常用操作符 比較操作符 邏輯操作符 連線操作符 重複操作符 成員關係操作符 列表可以比較大小,只比較第乙個元素,不同型別會報錯,字串比較編碼 list1 1,2 list2 3,4 list3 list1 list2 list3 輸出 1,2,3,4 list3會作為乙個新列表 l...

js學習筆記 012 全域性物件

當js直譯器啟動時 或者任何web瀏覽器載入新的頁面時 它將建立乙個新的全域性物件,並給它定義初始屬性 全域性屬性 如undefined infinity和nan 全域性函式 如isnan parseint 和eval 建構函式 如date regexp string object array 全域...

python教學筆記 python學習筆記(一)

1.eval 函式 eval是單詞evaluate的縮寫,就是 求.的值的意思。eval 函式的作用是把str轉換成list,dict,tuple.li 1 1,2,3 print eval li 1 di 1 print eval di 1 tu 1 2,4,6 print eval tu 1 執...