python的pdb调试

python里的pdb调试

准备

  • 环境:64位win11
  • 使用工具:vscode,当然也可以用pycharm等其他编辑工具
  • 调试源代码(猜数字小游戏):
import random
quit = 0
while quit == 0:
    level = int(input("输入游戏难度:"))
    item = 100
    if level == 1:
       pass
    elif level == 2:
       item = 500
    elif level == 3:
       item = 1000
    answer = random.randint(1,item)
    guess = int(input("请输入你猜的数:"))
    flag = 0
    while flag == 0:
        if guess == answer:
            print("恭喜你猜对了!")
            flag = 1
        elif guess > answer:
            print("大了!请输入小一点的数",end = " ")
            guess = int(input("请输入你猜的数:"))
        elif guess < answer:
            print("小了!请输入大一点的数",end = " ")
            guess = int(input("请输入你猜的数:"))
    quit = int(input("是否进行下一次?是按0,否按1:"))

引入pbd模块

在python里面想要使用pdb调试,我们首先需要引入pdb模块,也就是在代码最前面加上这样一行代码
import pdb
只有这样我们才能继续进行。

设置断点

你可以在任何一行设置断点,让代码在运行到断点的时候停下来,和编辑软件自带的调试工具直接在代码旁边点上一点不同,你需要在你想停下来的地方上一行加上这样一行代码:
pdb.set_trace()
在开始运行之后你的代码就会停止在这个断点处,并且在终端进入pdb模式,如下我们熟悉的猜数字小游戏(使用软件vscode):
在这里插入图片描述
我们可以看到我在输入level之后一行设置了断点,在我运行之后,输入了level的值之后,程序就停了下来,进入了pdb模式。

常用命令

  • 列出脚本清单 :l
    ‘l’是list的缩写,我们可以再终端输入l来列出脚本清单,也就是显示当时代码的上下文。如下图:在这里插入图片描述

  • 打印表达式结果:p
    p是print的缩写,在终端中输入
    p 表达式,表达式……
    的方式来打印你需要看到的量,比如下图:
    在这里插入图片描述
    打印quit,发现其值为0

  • 下一行:n
    我们程序需要继续往前跑,这时候我们就可以输入 ‘n’(next的缩写)来进行单步调试:
    在这里插入图片描述
    可以看到,程序已经一步步的运行。

  • 运行程序直至遇到下一个断点:c
    c为continue的缩写,在终端输入c之后,程序会从第一个断点一直运行到下一个断点:
    在这里插入图片描述

如图,第一个断点停下之后在终端输入c,程序继续运行到第二个断点之后会再次停下。

  • 退出pdb调试:q
    q为quit的缩写,意思也就是退出:
    在这里插入图片描述
    可以看到,在终端输入q之后,前面的pdb消失了,pdb调试已退出。

更多

pdb调试学习来源
pdb更多命令

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值