做爰高潮a片〈毛片〉,尤物av天堂一区二区在线观看,一本久久A久久精品VR综合,添女人荫蒂全部过程av

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

使用pdb模塊調試Python程序實例

來源:懂視網 責編:小采 時間:2020-11-27 14:41:08
文檔

使用pdb模塊調試Python程序實例

使用pdb模塊調試Python程序實例:在Python中,語法錯誤可以被Python解釋器發現,但邏輯上錯誤或變量使用錯誤卻不容易發現,如果結果沒有符合預期,則需要調試,一個很好的調試工具:Python自帶的pdb模塊。pdb是Python自帶的調試模塊。使用pdb模塊可以為腳本設置斷點、單步執行、查看變量值等。
推薦度:
導讀使用pdb模塊調試Python程序實例:在Python中,語法錯誤可以被Python解釋器發現,但邏輯上錯誤或變量使用錯誤卻不容易發現,如果結果沒有符合預期,則需要調試,一個很好的調試工具:Python自帶的pdb模塊。pdb是Python自帶的調試模塊。使用pdb模塊可以為腳本設置斷點、單步執行、查看變量值等。

在Python中,語法錯誤可以被Python解釋器發現,但邏輯上錯誤或變量使用錯誤卻不容易發現,如果結果沒有符合預期,則需要調試,一個很好的調試工具:Python自帶的pdb模塊。pdb是Python自帶的調試模塊。使用pdb模塊可以為腳本設置斷點、單步執行、查看變量值等。

pdb可以用命令行參數的方式啟動,也可以使用import 將其導入后再使用。

代碼如下:


>>> dir(pdb)
['Pdb', 'Repr', 'Restart', 'TESTCMD',.....,'re', 'run', 'runcall', 'runctx', 'runeval', 'set_trace', 'sys', 'test', 'traceback']


常見的pdb函數有以下幾個:

【pdb.run()函數】

>>> 該函數主要用于調試語句塊
>>> 基本用法如下

代碼如下:


>>> help(pdb.run)
Help on function run in module pdb:

run(statement, globals=None, locals=None)
>>>參數含義

statement: 要調試的語句塊,以字符串的形式表示
globals: 可選參數,設置statement運行的全局環境變量
locals: 可選參數,設置statement運行的局部環境變量
>>>簡單示例

代碼如下:


>>> import pdb # 導入調試模塊
>>> pdb.run(''''' # 調用run()函數執行一個for循環
for i in range(3):
i *= 3
print(i)
''')
> (2)()
(Pdb) n # (Pdb)為調試命令提示符,表示可輸入調試命令
> (3)()
(Pdb) n # n(next)表示執行下一行
> (4)()
(Pdb) print(i) # 打印變量i的值
0
(Pdb) continue # 繼續運行程序
0
3
6

【pdb.runeval()函數】
>>>該函數主要用于調試表達式
>>>基本用法如下

代碼如下:


>>> help(pdb.runeval)
Help on function runeval in module pdb:

runeval(expression, globals=None, locals=None)

>>> 參數含義

expression: 要調試的,
globals: 可選參數,設置statement運行的全局環境變量
locals: 可選參數,設置statement運行的局部環境變量

>>> 簡單示例

代碼如下:


>>> import pdb # 導入pdb模塊
>>> lst = [1, 2, 3] # 定義一個列表
>>> pdb.runeval('lst[1]') # 調用runaval()函數來調試表達式lst[1]
> (1)()
(Pdb) n # 進入調試狀態,使用n命令,單步執行
--Return--
> (1)()->2
(Pdb) n # 單步執行
2 # 返回表達式的值
>>> pdb.runeval('3 + 5*6/2') # 使用runaval()函數來調試表達式3+5*6/2
> (1)()->2
(Pdb) n
--Return--
> (1)()->18
(Pdb) n # 使用n命令單步執行
18 # 最后得出表達式的值

【pdb.runcall()函數】

>>>該函數主要用于調試函數
>>>基本用法如下

代碼如下:


>>> help(pdb.runcall)
Help on function runcall in module pdb:

runcall(*args, **kwds)

>>> 參數含義
function: 函數名
args(kwds): 函數的參數
>>> 簡單示例

代碼如下:


>>> import pdb # 導入模塊
>>> def sum(*args): # 定義函數sum,求所有參數之和
res = 0
for arg in args:
res += arg
return res

>>> pdb.runcall(sum, 1, 2, 3, 4) # 使用runcall調試函數sum
> (2)sum()
(Pdb) n # 進入調試狀態,單步執行
> (3)sum()
(Pdb) n # 單步執行
> (4)sum()
(Pdb) print(res) # 使用print打印res的值
0
(Pdb) continue # 繼續執行
10
>>> pdb.runcall(sum, 1, 2, 3, 4, 5, 6) # 調用runcall調試函數sum,參數不同

> (2)sum()
(Pdb) continue # 繼續執行
21 # 函數最后返回結果

【pdb.set_trace()函數】

>>>該函數主要用于腳本中設置硬斷點
>>>基本用法如下

代碼如下:


>>> help(pdb.set_trace)
Help on function set_trace in module pdb:

set_trace()

>>>簡單示例

代碼如下:


# file: test.py

import pdb

pdb.set_trace()
for i in range(5):
i *= 5
print(i)

運行腳本后顯示:

代碼如下:


> d:learnpython est.py(6)()
-> for i in range(5):
(Pdb) list # 使用list列出腳本內容
1 # file: test.py
2
3 import pdb
4
5 pdb.set_trace() # 使用set_trace()設置硬斷點
6 -> for i in range(5):
7 i *= 5
8 print(i)
[EOF] # 列出腳本內容結束
(Pdb) continue # 使用continue繼續執行
0
5
10
15
20

【pdb調試命令】
pdb中的調試命令可以完成單步執行、打印變量值、設置斷點等功能。pdb主要命令如下

代碼如下:


------------------------------------------------------------------------------
# 完整命令 簡寫命令 描述
------------------------------------------------------------------------------
# args a 打印當前函數的參數
# break b 設置斷點
# clear cl 清除斷點
# condition 無 設置條件斷點
# continue c 繼續運行,直到遇到斷點或者腳本結束
# disable 無 禁用斷點
# enable 無 啟用斷點
# help h 查看pdb幫助
# ignore 無 忽略斷點
# jump j 跳轉到指定行數運行
# list l 列出腳本清單
# next n 執行下條語句,遇到函數不進入其內部
# print p 打印變量值
# quit q 退出pdb
# return r 一致運行到函數返回
# tbreak 無 設置臨時斷點、斷點只中斷一次
# step s 執行下一條語句,遇到函數進入其內部
# where w 查看所在的位置
# ! 無 在pdb中執行語句


>>>簡單示例

代碼如下:


# -*- coding:gbk -*-
# file: prime.py
#
import math
# isprime函數判斷一個整數是否為素數
# 如果i能被2到i的平方根內的任意一個數整除,
# 則i不是素數,返回0,否則i是素數,返回1。
def isprime(i):
for t in range(2, int(math.sqrt(i)) + 1):
if i % t == 0:
return 0


print('100~110之間素數有: ')
for i in range(100, 110):
if isprime(i):
print(i)

先運行下面命令:

代碼如下:


d:LearnPython>python -m pdb prime.py

后輸入以下命令:

代碼如下:


d:LearnPython>python -m pdb prime.py
> d:learnpythonprime.py(4)()
-> import math
(Pdb) list # 運行前面命令后停在這里,list默認只列出11行
1 # -*- coding:gbk -*-
2 # file: prime.py
3 #
4 -> import math
5 # isprime函數判斷一個整數是否為素數
6 # 如果i能被2到i的平方根內的任意一個數整除,
7 # 則i不是素數,返回0,否則i是素數,返回1。
8 def isprime(i):
9 for t in range(2, int(math.sqrt(i)) + 1):
10 if i % t == 0:
11 return 0
(Pdb) l 14,17 # 使用list命令,列出14行,到17行
14 print('100~110之間素數有: ')
15 for i in range(100, 110):
16 if isprime(i):
17 print(i)
(Pdb) b 14 # 使用break命令設置斷點
Breakpoint 1 at d:learnpythonprime.py:14 # 返回斷點編號: 1
(Pdb) b isprime # 在函數isprime設置斷點
Breakpoint 2 at d:learnpythonprime.py:8 # 返回斷點編號: 2
(Pdb) c # 使用c命令運行運行腳本
> d:learnpythonprime.py(14)() # 停在斷點1處,即第14行
-> print('100~110之間素數有: ')
(Pdb) c # 使用c命令繼續運行腳本
100~110之間素數有: # 第14行腳本輸出
> d:learnpythonprime.py(9)isprime() # 停在斷點2,即isprime函數處
-> for t in range(2, int(math.sqrt(i)) + 1):
(Pdb) b 15 # 在第15行處設置斷點
Breakpoint 3 at d:learnpythonprime.py:15
(Pdb) disable 2 # 禁用斷點2,即isprime函數處的斷點
(Pdb) c # 使用c命令繼續運行腳本
> d:learnpythonprime.py(15)() # 停在斷點3處,即第15行
-> for i in range(100, 110):
(Pdb) print(i) # 使用print打印變量i的值
100
(Pdb) c # 繼續運行腳本
> d:learnpythonprime.py(15)()
-> for i in range(100, 110):
(Pdb) p i # 打印i的值
101
(Pdb) enable 2 # 恢復斷點2,即isprime函數處的斷點
(Pdb) c # 繼續運行腳本
> d:learnpythonprime.py(9)isprime()
-> for t in range(2, int(math.sqrt(i)) + 1):
(Pdb) n # 單步執行下一條語句
> d:learnpythonprime.py(10)isprime()
-> if i % t == 0:
(Pdb) print(t) # 使用print打印變量t的值
2
(Pdb) cl # 清楚所有斷點,輸入y確認
Clear all breaks? y
(Pdb) c # 繼續運行腳本
103
105
107
109
(Pdb) q # 使用quit(q)退出pdb調試

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

使用pdb模塊調試Python程序實例

使用pdb模塊調試Python程序實例:在Python中,語法錯誤可以被Python解釋器發現,但邏輯上錯誤或變量使用錯誤卻不容易發現,如果結果沒有符合預期,則需要調試,一個很好的調試工具:Python自帶的pdb模塊。pdb是Python自帶的調試模塊。使用pdb模塊可以為腳本設置斷點、單步執行、查看變量值等。
推薦度:
標簽: 程序 模塊 調試
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 广南县| 招远市| 大埔区| 南雄市| 禹州市| 那坡县| 永修县| 荆州市| 华阴市| 龙江县| 岑溪市| 武穴市| 花莲市| 汾阳市| 黎川县| 双流县| 呼图壁县| 侯马市| 新沂市| 拜泉县| 开化县| 富阳市| 永修县| 二手房| 曲周县| 丰原市| 通道| 阿图什市| 五家渠市| 轮台县| 宁阳县| 汪清县| 商河县| 霍邱县| 河东区| 万安县| 房产| 新乡市| 绥中县| 西宁市| 夹江县|