使用pdb模塊調(diào)試Python程序?qū)嵗?/h1>
更新時(shí)間:2015年06月02日 16:34:59 投稿:junjie
這篇文章主要介紹了使用pdb模塊調(diào)試Python程序?qū)嵗?本文著重講解了pdb.run()函數(shù)、pdb.runeval()函數(shù)、pdb.runcall()函數(shù)、pdb.set_trace()函數(shù)的使用以及pdb調(diào)試命令等內(nèi)容,需要的朋友可以參考下
在Python中,語法錯(cuò)誤可以被Python解釋器發(fā)現(xiàn),但邏輯上錯(cuò)誤或變量使用錯(cuò)誤卻不容易發(fā)現(xiàn),如果結(jié)果沒有符合預(yù)期,則需要調(diào)試,一個(gè)很好的調(diào)試工具:Python自帶的pdb模塊。pdb是Python自帶的調(diào)試模塊。使用pdb模塊可以為腳本設(shè)置斷點(diǎn)、單步執(zhí)行、查看變量值等。
pdb可以用命令行參數(shù)的方式啟動(dòng),也可以使用import 將其導(dǎo)入后再使用。
復(fù)制代碼 代碼如下:
>>> dir(pdb)
['Pdb', 'Repr', 'Restart', 'TESTCMD',.....,'re', 'run', 'runcall', 'runctx', 'runeval', 'set_trace', 'sys', 'test', 'traceback']
常見的pdb函數(shù)有以下幾個(gè):
【pdb.run()函數(shù)】
>>> 該函數(shù)主要用于調(diào)試語句塊
>>> 基本用法如下
復(fù)制代碼 代碼如下:
>>> help(pdb.run)
Help on function run in module pdb:
run(statement, globals=None, locals=None)
>>>參數(shù)含義
statement: 要調(diào)試的語句塊,以字符串的形式表示
globals: 可選參數(shù),設(shè)置statement運(yùn)行的全局環(huán)境變量
locals: 可選參數(shù),設(shè)置statement運(yùn)行的局部環(huán)境變量
>>>簡單示例
復(fù)制代碼 代碼如下:
>>> import pdb # 導(dǎo)入調(diào)試模塊
>>> pdb.run(''''' # 調(diào)用run()函數(shù)執(zhí)行一個(gè)for循環(huán)
for i in range(3):
i *= 3
print(i)
''')
> <string>(2)<module>()
(Pdb) n # (Pdb)為調(diào)試命令提示符,表示可輸入調(diào)試命令
> <string>(3)<module>()
(Pdb) n # n(next)表示執(zhí)行下一行
> <string>(4)<module>()
(Pdb) print(i) # 打印變量i的值
0
(Pdb) continue # 繼續(xù)運(yùn)行程序
0
3
6
【pdb.runeval()函數(shù)】
>>>該函數(shù)主要用于調(diào)試表達(dá)式
>>>基本用法如下
復(fù)制代碼 代碼如下:
>>> help(pdb.runeval)
Help on function runeval in module pdb:
runeval(expression, globals=None, locals=None)
>>> 參數(shù)含義
expression: 要調(diào)試的,
globals: 可選參數(shù),設(shè)置statement運(yùn)行的全局環(huán)境變量
locals: 可選參數(shù),設(shè)置statement運(yùn)行的局部環(huán)境變量
>>> 簡單示例
復(fù)制代碼 代碼如下:
>>> import pdb # 導(dǎo)入pdb模塊
>>> lst = [1, 2, 3] # 定義一個(gè)列表
>>> pdb.runeval('lst[1]') # 調(diào)用runaval()函數(shù)來調(diào)試表達(dá)式lst[1]
> <string>(1)<module>()
(Pdb) n # 進(jìn)入調(diào)試狀態(tài),使用n命令,單步執(zhí)行
--Return--
> <string>(1)<module>()->2
(Pdb) n # 單步執(zhí)行
2 # 返回表達(dá)式的值
>>> pdb.runeval('3 + 5*6/2') # 使用runaval()函數(shù)來調(diào)試表達(dá)式3+5*6/2
> <string>(1)<module>()->2
(Pdb) n
--Return--
> <string>(1)<module>()->18
(Pdb) n # 使用n命令單步執(zhí)行
18 # 最后得出表達(dá)式的值
【pdb.runcall()函數(shù)】
>>>該函數(shù)主要用于調(diào)試函數(shù)
>>>基本用法如下
復(fù)制代碼 代碼如下:
>>> help(pdb.runcall)
Help on function runcall in module pdb:
runcall(*args, **kwds)
>>> 參數(shù)含義
function: 函數(shù)名
args(kwds): 函數(shù)的參數(shù)
>>> 簡單示例
復(fù)制代碼 代碼如下:
>>> import pdb # 導(dǎo)入模塊
>>> def sum(*args): # 定義函數(shù)sum,求所有參數(shù)之和
res = 0
for arg in args:
res += arg
return res
>>> pdb.runcall(sum, 1, 2, 3, 4) # 使用runcall調(diào)試函數(shù)sum
> <pyshell#53>(2)sum()
(Pdb) n # 進(jìn)入調(diào)試狀態(tài),單步執(zhí)行
> <pyshell#53>(3)sum()
(Pdb) n # 單步執(zhí)行
> <pyshell#53>(4)sum()
(Pdb) print(res) # 使用print打印res的值
0
(Pdb) continue # 繼續(xù)執(zhí)行
10
>>> pdb.runcall(sum, 1, 2, 3, 4, 5, 6) # 調(diào)用runcall調(diào)試函數(shù)sum,參數(shù)不同
> <pyshell#53>(2)sum()
(Pdb) continue # 繼續(xù)執(zhí)行
21 # 函數(shù)最后返回結(jié)果
【pdb.set_trace()函數(shù)】
>>>該函數(shù)主要用于腳本中設(shè)置硬斷點(diǎn)
>>>基本用法如下
復(fù)制代碼 代碼如下:
>>> help(pdb.set_trace)
Help on function set_trace in module pdb:
set_trace()
>>>簡單示例
復(fù)制代碼 代碼如下:
# file: test.py
import pdb
pdb.set_trace()
for i in range(5):
i *= 5
print(i)
運(yùn)行腳本后顯示:
復(fù)制代碼 代碼如下:
> d:\learn\python\test.py(6)<module>()
-> for i in range(5):
(Pdb) list # 使用list列出腳本內(nèi)容
1 # file: test.py
2
3 import pdb
4
5 pdb.set_trace() # 使用set_trace()設(shè)置硬斷點(diǎn)
6 -> for i in range(5):
7 i *= 5
8 print(i)
[EOF] # 列出腳本內(nèi)容結(jié)束
(Pdb) continue # 使用continue繼續(xù)執(zhí)行
0
5
10
15
20
【pdb調(diào)試命令】
pdb中的調(diào)試命令可以完成單步執(zhí)行、打印變量值、設(shè)置斷點(diǎn)等功能。pdb主要命令如下
復(fù)制代碼 代碼如下:
------------------------------------------------------------------------------
# 完整命令 簡寫命令 描述
------------------------------------------------------------------------------
# args a 打印當(dāng)前函數(shù)的參數(shù)
# break b 設(shè)置斷點(diǎn)
# clear cl 清除斷點(diǎn)
# condition 無 設(shè)置條件斷點(diǎn)
# continue c 繼續(xù)運(yùn)行,直到遇到斷點(diǎn)或者腳本結(jié)束
# disable 無 禁用斷點(diǎn)
# enable 無 啟用斷點(diǎn)
# help h 查看pdb幫助
# ignore 無 忽略斷點(diǎn)
# jump j 跳轉(zhuǎn)到指定行數(shù)運(yùn)行
# list l 列出腳本清單
# next n 執(zhí)行下條語句,遇到函數(shù)不進(jìn)入其內(nèi)部
# print p 打印變量值
# quit q 退出pdb
# return r 一致運(yùn)行到函數(shù)返回
# tbreak 無 設(shè)置臨時(shí)斷點(diǎn)、斷點(diǎn)只中斷一次
# step s 執(zhí)行下一條語句,遇到函數(shù)進(jìn)入其內(nèi)部
# where w 查看所在的位置
# ! 無 在pdb中執(zhí)行語句
>>>簡單示例
復(fù)制代碼 代碼如下:
# -*- coding:gbk -*-
# file: prime.py
#
import math
# isprime函數(shù)判斷一個(gè)整數(shù)是否為素?cái)?shù)
# 如果i能被2到i的平方根內(nèi)的任意一個(gè)數(shù)整除,
# 則i不是素?cái)?shù),返回0,否則i是素?cái)?shù),返回1。
def isprime(i):
for t in range(2, int(math.sqrt(i)) + 1):
if i % t == 0:
return 0
print('100~110之間素?cái)?shù)有: ')
for i in range(100, 110):
if isprime(i):
print(i)
先運(yùn)行下面命令:
復(fù)制代碼 代碼如下:
d:\Learn\Python>python -m pdb prime.py
后輸入以下命令:
復(fù)制代碼 代碼如下:
d:\Learn\Python>python -m pdb prime.py
> d:\learn\python\prime.py(4)<module>()
-> import math
(Pdb) list # 運(yùn)行前面命令后停在這里,list默認(rèn)只列出11行
1 # -*- coding:gbk -*-
2 # file: prime.py
3 #
4 -> import math
5 # isprime函數(shù)判斷一個(gè)整數(shù)是否為素?cái)?shù)
6 # 如果i能被2到i的平方根內(nèi)的任意一個(gè)數(shù)整除,
7 # 則i不是素?cái)?shù),返回0,否則i是素?cái)?shù),返回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之間素?cái)?shù)有: ')
15 for i in range(100, 110):
16 if isprime(i):
17 print(i)
(Pdb) b 14 # 使用break命令設(shè)置斷點(diǎn)
Breakpoint 1 at d:\learn\python\prime.py:14 # 返回?cái)帱c(diǎn)編號(hào): 1
(Pdb) b isprime # 在函數(shù)isprime設(shè)置斷點(diǎn)
Breakpoint 2 at d:\learn\python\prime.py:8 # 返回?cái)帱c(diǎn)編號(hào): 2
(Pdb) c # 使用c命令運(yùn)行運(yùn)行腳本
> d:\learn\python\prime.py(14)<module>() # 停在斷點(diǎn)1處,即第14行
-> print('100~110之間素?cái)?shù)有: ')
(Pdb) c # 使用c命令繼續(xù)運(yùn)行腳本
100~110之間素?cái)?shù)有: # 第14行腳本輸出
> d:\learn\python\prime.py(9)isprime() # 停在斷點(diǎn)2,即isprime函數(shù)處
-> for t in range(2, int(math.sqrt(i)) + 1):
(Pdb) b 15 # 在第15行處設(shè)置斷點(diǎn)
Breakpoint 3 at d:\learn\python\prime.py:15
(Pdb) disable 2 # 禁用斷點(diǎn)2,即isprime函數(shù)處的斷點(diǎn)
(Pdb) c # 使用c命令繼續(xù)運(yùn)行腳本
> d:\learn\python\prime.py(15)<module>() # 停在斷點(diǎn)3處,即第15行
-> for i in range(100, 110):
(Pdb) print(i) # 使用print打印變量i的值
100
(Pdb) c # 繼續(xù)運(yùn)行腳本
> d:\learn\python\prime.py(15)<module>()
-> for i in range(100, 110):
(Pdb) p i # 打印i的值
101
(Pdb) enable 2 # 恢復(fù)斷點(diǎn)2,即isprime函數(shù)處的斷點(diǎn)
(Pdb) c # 繼續(xù)運(yùn)行腳本
> d:\learn\python\prime.py(9)isprime()
-> for t in range(2, int(math.sqrt(i)) + 1):
(Pdb) n # 單步執(zhí)行下一條語句
> d:\learn\python\prime.py(10)isprime()
-> if i % t == 0:
(Pdb) print(t) # 使用print打印變量t的值
2
(Pdb) cl # 清楚所有斷點(diǎn),輸入y確認(rèn)
Clear all breaks? y
(Pdb) c # 繼續(xù)運(yùn)行腳本
103
105
107
109
(Pdb) q # 使用quit(q)退出pdb調(diào)試
相關(guān)文章
-
利用Python腳本實(shí)現(xiàn)傳遞參數(shù)的三種方式分享
使用python腳本傳遞參數(shù)在實(shí)際工作過程中還是比較常用。這篇文章為大家總結(jié)了三個(gè)常用的方式,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下 2022-12-12
-
python 實(shí)現(xiàn) hive中類似 lateral view explode的功能示例
這篇文章主要介紹了python 實(shí)現(xiàn) hive中類似 lateral view explode的功能示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧 2020-05-05
-
python啟動(dòng)辦公軟件進(jìn)程(word、excel、ppt、以及wps的et、wps、wpp)
見如下源代碼,也可從附件中下載。
2009-04-04
-
Python 如何用一行代碼實(shí)現(xiàn)for循環(huán)初始化數(shù)組
這篇文章主要介紹了Python 用一行代碼實(shí)現(xiàn)for循環(huán)初始化數(shù)組的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧 2021-03-03
-
Python Pygame實(shí)戰(zhàn)之水果忍者游戲的實(shí)現(xiàn)
大家還記得水果忍者這個(gè)游戲嗎?想當(dāng)年,這也是個(gè)風(fēng)靡全國的游戲,基本每個(gè)人都玩過。今天小編就用Python中的Pygame庫復(fù)刻這一經(jīng)典游戲,需要的可以參考一下 2022-02-02
-
pycharm中使用anaconda部署python環(huán)境的方法步驟
這篇文章主要介紹了pycharm中使用anaconda部署python環(huán)境的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧 2018-12-12
最新評(píng)論
在Python中,語法錯(cuò)誤可以被Python解釋器發(fā)現(xiàn),但邏輯上錯(cuò)誤或變量使用錯(cuò)誤卻不容易發(fā)現(xiàn),如果結(jié)果沒有符合預(yù)期,則需要調(diào)試,一個(gè)很好的調(diào)試工具:Python自帶的pdb模塊。pdb是Python自帶的調(diào)試模塊。使用pdb模塊可以為腳本設(shè)置斷點(diǎn)、單步執(zhí)行、查看變量值等。
pdb可以用命令行參數(shù)的方式啟動(dòng),也可以使用import 將其導(dǎo)入后再使用。
>>> dir(pdb)
['Pdb', 'Repr', 'Restart', 'TESTCMD',.....,'re', 'run', 'runcall', 'runctx', 'runeval', 'set_trace', 'sys', 'test', 'traceback']
常見的pdb函數(shù)有以下幾個(gè):
【pdb.run()函數(shù)】
>>> 該函數(shù)主要用于調(diào)試語句塊
>>> 基本用法如下
>>> help(pdb.run)
Help on function run in module pdb:
run(statement, globals=None, locals=None)
>>>參數(shù)含義
statement: 要調(diào)試的語句塊,以字符串的形式表示
globals: 可選參數(shù),設(shè)置statement運(yùn)行的全局環(huán)境變量
locals: 可選參數(shù),設(shè)置statement運(yùn)行的局部環(huán)境變量
>>>簡單示例
>>> import pdb # 導(dǎo)入調(diào)試模塊
>>> pdb.run(''''' # 調(diào)用run()函數(shù)執(zhí)行一個(gè)for循環(huán)
for i in range(3):
i *= 3
print(i)
''')
> <string>(2)<module>()
(Pdb) n # (Pdb)為調(diào)試命令提示符,表示可輸入調(diào)試命令
> <string>(3)<module>()
(Pdb) n # n(next)表示執(zhí)行下一行
> <string>(4)<module>()
(Pdb) print(i) # 打印變量i的值
0
(Pdb) continue # 繼續(xù)運(yùn)行程序
0
3
6
【pdb.runeval()函數(shù)】
>>>該函數(shù)主要用于調(diào)試表達(dá)式
>>>基本用法如下
>>> help(pdb.runeval)
Help on function runeval in module pdb:
runeval(expression, globals=None, locals=None)
>>> 參數(shù)含義
expression: 要調(diào)試的,
globals: 可選參數(shù),設(shè)置statement運(yùn)行的全局環(huán)境變量
locals: 可選參數(shù),設(shè)置statement運(yùn)行的局部環(huán)境變量
>>> 簡單示例
>>> import pdb # 導(dǎo)入pdb模塊
>>> lst = [1, 2, 3] # 定義一個(gè)列表
>>> pdb.runeval('lst[1]') # 調(diào)用runaval()函數(shù)來調(diào)試表達(dá)式lst[1]
> <string>(1)<module>()
(Pdb) n # 進(jìn)入調(diào)試狀態(tài),使用n命令,單步執(zhí)行
--Return--
> <string>(1)<module>()->2
(Pdb) n # 單步執(zhí)行
2 # 返回表達(dá)式的值
>>> pdb.runeval('3 + 5*6/2') # 使用runaval()函數(shù)來調(diào)試表達(dá)式3+5*6/2
> <string>(1)<module>()->2
(Pdb) n
--Return--
> <string>(1)<module>()->18
(Pdb) n # 使用n命令單步執(zhí)行
18 # 最后得出表達(dá)式的值
【pdb.runcall()函數(shù)】
>>>該函數(shù)主要用于調(diào)試函數(shù)
>>>基本用法如下
>>> help(pdb.runcall)
Help on function runcall in module pdb:
runcall(*args, **kwds)
>>> 參數(shù)含義
function: 函數(shù)名
args(kwds): 函數(shù)的參數(shù)
>>> 簡單示例
>>> import pdb # 導(dǎo)入模塊
>>> def sum(*args): # 定義函數(shù)sum,求所有參數(shù)之和
res = 0
for arg in args:
res += arg
return res
>>> pdb.runcall(sum, 1, 2, 3, 4) # 使用runcall調(diào)試函數(shù)sum
> <pyshell#53>(2)sum()
(Pdb) n # 進(jìn)入調(diào)試狀態(tài),單步執(zhí)行
> <pyshell#53>(3)sum()
(Pdb) n # 單步執(zhí)行
> <pyshell#53>(4)sum()
(Pdb) print(res) # 使用print打印res的值
0
(Pdb) continue # 繼續(xù)執(zhí)行
10
>>> pdb.runcall(sum, 1, 2, 3, 4, 5, 6) # 調(diào)用runcall調(diào)試函數(shù)sum,參數(shù)不同
> <pyshell#53>(2)sum()
(Pdb) continue # 繼續(xù)執(zhí)行
21 # 函數(shù)最后返回結(jié)果
【pdb.set_trace()函數(shù)】
>>>該函數(shù)主要用于腳本中設(shè)置硬斷點(diǎn)
>>>基本用法如下
>>> 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)
運(yùn)行腳本后顯示:
> d:\learn\python\test.py(6)<module>()
-> for i in range(5):
(Pdb) list # 使用list列出腳本內(nèi)容
1 # file: test.py
2
3 import pdb
4
5 pdb.set_trace() # 使用set_trace()設(shè)置硬斷點(diǎn)
6 -> for i in range(5):
7 i *= 5
8 print(i)
[EOF] # 列出腳本內(nèi)容結(jié)束
(Pdb) continue # 使用continue繼續(xù)執(zhí)行
0
5
10
15
20
【pdb調(diào)試命令】
pdb中的調(diào)試命令可以完成單步執(zhí)行、打印變量值、設(shè)置斷點(diǎn)等功能。pdb主要命令如下
------------------------------------------------------------------------------
# 完整命令 簡寫命令 描述
------------------------------------------------------------------------------
# args a 打印當(dāng)前函數(shù)的參數(shù)
# break b 設(shè)置斷點(diǎn)
# clear cl 清除斷點(diǎn)
# condition 無 設(shè)置條件斷點(diǎn)
# continue c 繼續(xù)運(yùn)行,直到遇到斷點(diǎn)或者腳本結(jié)束
# disable 無 禁用斷點(diǎn)
# enable 無 啟用斷點(diǎn)
# help h 查看pdb幫助
# ignore 無 忽略斷點(diǎn)
# jump j 跳轉(zhuǎn)到指定行數(shù)運(yùn)行
# list l 列出腳本清單
# next n 執(zhí)行下條語句,遇到函數(shù)不進(jìn)入其內(nèi)部
# print p 打印變量值
# quit q 退出pdb
# return r 一致運(yùn)行到函數(shù)返回
# tbreak 無 設(shè)置臨時(shí)斷點(diǎn)、斷點(diǎn)只中斷一次
# step s 執(zhí)行下一條語句,遇到函數(shù)進(jìn)入其內(nèi)部
# where w 查看所在的位置
# ! 無 在pdb中執(zhí)行語句
>>>簡單示例
# -*- coding:gbk -*-
# file: prime.py
#
import math
# isprime函數(shù)判斷一個(gè)整數(shù)是否為素?cái)?shù)
# 如果i能被2到i的平方根內(nèi)的任意一個(gè)數(shù)整除,
# 則i不是素?cái)?shù),返回0,否則i是素?cái)?shù),返回1。
def isprime(i):
for t in range(2, int(math.sqrt(i)) + 1):
if i % t == 0:
return 0
print('100~110之間素?cái)?shù)有: ')
for i in range(100, 110):
if isprime(i):
print(i)
先運(yùn)行下面命令:
d:\Learn\Python>python -m pdb prime.py
后輸入以下命令:
d:\Learn\Python>python -m pdb prime.py
> d:\learn\python\prime.py(4)<module>()
-> import math
(Pdb) list # 運(yùn)行前面命令后停在這里,list默認(rèn)只列出11行
1 # -*- coding:gbk -*-
2 # file: prime.py
3 #
4 -> import math
5 # isprime函數(shù)判斷一個(gè)整數(shù)是否為素?cái)?shù)
6 # 如果i能被2到i的平方根內(nèi)的任意一個(gè)數(shù)整除,
7 # 則i不是素?cái)?shù),返回0,否則i是素?cái)?shù),返回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之間素?cái)?shù)有: ')
15 for i in range(100, 110):
16 if isprime(i):
17 print(i)
(Pdb) b 14 # 使用break命令設(shè)置斷點(diǎn)
Breakpoint 1 at d:\learn\python\prime.py:14 # 返回?cái)帱c(diǎn)編號(hào): 1
(Pdb) b isprime # 在函數(shù)isprime設(shè)置斷點(diǎn)
Breakpoint 2 at d:\learn\python\prime.py:8 # 返回?cái)帱c(diǎn)編號(hào): 2
(Pdb) c # 使用c命令運(yùn)行運(yùn)行腳本
> d:\learn\python\prime.py(14)<module>() # 停在斷點(diǎn)1處,即第14行
-> print('100~110之間素?cái)?shù)有: ')
(Pdb) c # 使用c命令繼續(xù)運(yùn)行腳本
100~110之間素?cái)?shù)有: # 第14行腳本輸出
> d:\learn\python\prime.py(9)isprime() # 停在斷點(diǎn)2,即isprime函數(shù)處
-> for t in range(2, int(math.sqrt(i)) + 1):
(Pdb) b 15 # 在第15行處設(shè)置斷點(diǎn)
Breakpoint 3 at d:\learn\python\prime.py:15
(Pdb) disable 2 # 禁用斷點(diǎn)2,即isprime函數(shù)處的斷點(diǎn)
(Pdb) c # 使用c命令繼續(xù)運(yùn)行腳本
> d:\learn\python\prime.py(15)<module>() # 停在斷點(diǎn)3處,即第15行
-> for i in range(100, 110):
(Pdb) print(i) # 使用print打印變量i的值
100
(Pdb) c # 繼續(xù)運(yùn)行腳本
> d:\learn\python\prime.py(15)<module>()
-> for i in range(100, 110):
(Pdb) p i # 打印i的值
101
(Pdb) enable 2 # 恢復(fù)斷點(diǎn)2,即isprime函數(shù)處的斷點(diǎn)
(Pdb) c # 繼續(xù)運(yùn)行腳本
> d:\learn\python\prime.py(9)isprime()
-> for t in range(2, int(math.sqrt(i)) + 1):
(Pdb) n # 單步執(zhí)行下一條語句
> d:\learn\python\prime.py(10)isprime()
-> if i % t == 0:
(Pdb) print(t) # 使用print打印變量t的值
2
(Pdb) cl # 清楚所有斷點(diǎn),輸入y確認(rèn)
Clear all breaks? y
(Pdb) c # 繼續(xù)運(yùn)行腳本
103
105
107
109
(Pdb) q # 使用quit(q)退出pdb調(diào)試
相關(guān)文章
利用Python腳本實(shí)現(xiàn)傳遞參數(shù)的三種方式分享
使用python腳本傳遞參數(shù)在實(shí)際工作過程中還是比較常用。這篇文章為大家總結(jié)了三個(gè)常用的方式,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-12-12python 實(shí)現(xiàn) hive中類似 lateral view explode的功能示例
這篇文章主要介紹了python 實(shí)現(xiàn) hive中類似 lateral view explode的功能示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05python啟動(dòng)辦公軟件進(jìn)程(word、excel、ppt、以及wps的et、wps、wpp)
見如下源代碼,也可從附件中下載。2009-04-04Python 如何用一行代碼實(shí)現(xiàn)for循環(huán)初始化數(shù)組
這篇文章主要介紹了Python 用一行代碼實(shí)現(xiàn)for循環(huán)初始化數(shù)組的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03Python Pygame實(shí)戰(zhàn)之水果忍者游戲的實(shí)現(xiàn)
大家還記得水果忍者這個(gè)游戲嗎?想當(dāng)年,這也是個(gè)風(fēng)靡全國的游戲,基本每個(gè)人都玩過。今天小編就用Python中的Pygame庫復(fù)刻這一經(jīng)典游戲,需要的可以參考一下2022-02-02pycharm中使用anaconda部署python環(huán)境的方法步驟
這篇文章主要介紹了pycharm中使用anaconda部署python環(huán)境的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-12-12