Pycharm调试Debug篇(详细)

本文介绍了如何在PyCharm中启用调试模式,并详细讲解了断点调试的重要性和使用方法,包括step over、step into、step out和Resume program等关键功能。通过实例演示了设置断点、进入函数、单步执行代码的过程,帮助开发者更好地理解和掌握Python程序的调试技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pycharm中的debug模式

首先,还是用示例说话,我们书写一段简短的代码,来帮我们完成今天要讲的内容。

def sum_demo(x, y):
    for _ in range(2):
        x += 1
        y += 1
        result = x + y
    return result

if __name__ == '__main__':
    result = sum_demo(1, 1)
    print(result)

肉眼识别下,猜猜结果是多少呢?初学者可能没见过 for 循环中的下划线,在 Python 中是占位符的意思,因为单纯的循环两次而已,并不用到它的循环结果。最终 result 会输出 6 。

在 pycharm 中,如何开启 debug 调试,一共有三种进入的方法,如下(下图均可点开放大观看):

方法一:

方法二:

方法三:

还有一种方法,就是 pycharm 导航栏处,有个run,点开以后即可看到 debug ,这里就不截图演示了。

单纯的进入 debug 模式,你会发现,与正常的 run 去运行程序没有差异。差异就是 pycharm 的控制台部分,从 run 跑到了 debug 显示。

接下来要讲的,才是 debug 中的重中之重,即断点调试!

debug 的断点调试

断点调试,英文 breakpoint。用大白话来解释下,断点调试其实就是在程序自动运行的过程中,你在代码某一处打上了断点,当程序跑到你设置的断点位置处,则会中断下来,此时你可以看到之前运行过的所有程序变量。

来继续刚才的演示,pycharm 中如何设置断点。

点击前:

点击后,皮一下,每行代码都设置上断点:

设置完断点后,开启 debug 调试模式运行下,看到结果:

看到了这么多新摆设,是不是有点怕了!不怕,咱们先来从控制台每个按钮讲起:

如果要是忘记中文意思的话,没有关系,鼠标指到按钮处,悬浮一会儿,会有英文提示的。继续再来说横排按钮:

其中,横排最重要,经常用到的按钮,来解释一下,自己鼠标悬浮去看英文即可:

step over(F8快捷键):在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。在不存在子函数的情况下是和step into效果一样的。简单的说就是,程序代码越过子函数,但子函数会执行,且不进入。

step into(F7快捷键):在单步执行时,遇到子函数就进入并且继续单步执行,有的会跳到源代码里面去执行。

step into my code(Alt+Shift+F7快捷键):在单步执行时,遇到子函数就进入并且继续单步执行,不会进入到源码中。

step out(Shift+F8快捷键):假如进入了一个函数体中,你看了两行代码,不想看了,跳出当前函数体内,返回到调用此函数的地方,即使用此功能即可。

Resume program(F9快捷键):继续恢复程序,直接运行到下一断点处。
以上四个功能,就是最常用的功能,一般操作步骤就是,设置好断点,debug运行,然后 F8 单步调试,遇到想进入的函数 F7 进去,想出来在 shift + F8,跳过不想看的地方,直接设置下一个断点,然后 F9 过去。

示例演示

上面的基础概念明白了以后,直接用图片示例演示下:

1. 设置初步断点

2. F7 进入函数

3. F8 单步调试,往下执行代码

继续 F8 单步调试,往下执行代码:

继续 F8 单步调试:

继续 F8 单步调试:

4. 看够了循环,想直接看最终 result 加完的结果,结果处打断点,直接 F9

### PyCharm 调试 功能 使用指南 #### 启动调试过程 当使用 PyCharm 进行开发时,任何运行、调试或测试的操作都是通过已定义好的运行/调试配置来启动的[^1]。这意味着为了进入调试模式,需要先创建一个合适的配置。 #### 开启调试界面 点击工具栏上的小蜘蛛图标可以快速开启调试会话,在此之后,PyCharm 的底部将会弹出一个新的选项卡用于展示与调试有关的信息[^3]。这些信息被分为多个部分以便于开发者监控应用程序的状态: - **变量查看窗口**:允许实时观察程序中不同位置下的局部和全局变量值的变化情况。 - **调试控制窗口**:提供了诸如继续执行、单步跳过等功能按钮,使用户能够精确掌控代码流。 - **线程控制窗口**:对于多线程应用来说尤为重要,它可以帮助理解各线程间的交互关系。 - **程序控制窗口**:包含了暂停、恢复等命令,以及设置断点的能力。 #### 查看具体数据 一旦进入了调试视图,`Variables` 面板就成为了最常用的组件之一。在这里不仅可以浏览当前作用域内的所有变量及其对应的即时数值,还可以进一步展开复杂对象结构来进行深入分析[^4]。与此同时,如果想要临时试验某些表达式的计算结果,则可以在 `Console` 中输入相应的 Python 语句并立即得到反馈;而关于整个调用栈的情况则由 `Debugger` 来呈现给使用者。 ```python def example_function(x, y): z = x + y # 设定此处为断点 result = (z * 2) / 3 return round(result) example_function(5, 7) ``` 在这个例子中,假设我们在加法运算那一步设置了断点,那么当我们开始调试时,程序会在到达这行之前停止下来等待指令。此时就可以利用上述提到的各种特性去探究函数内部的工作机制了。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值