pycharm中的调试功能使用及说明

 更新时间:2025年05月22日 09:51:14   作者:不辉放弃  
这篇文章主要介绍了pycharm中的调试功能使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、调试前的准备工作​​

1. 准备一段测试代码

先写一个简单的Python脚本(比如计算阶乘),故意留点问题:

def factorial(n):
    result = 1
    for i in range(n):
        result *= i
    return result

print(factorial(5))  # 预期输出120,但实际输出0?

2. 为什么需要调试?

  • 当代码运行结果不符合预期时,调试能帮你逐行跟踪代码执行过程。
  • 可以查看变量值的变化,找出逻辑错误。

​​二、调试核心操作(带截图步骤)​​

​​1. 设置断点(Breakpoint)​​

  • ​作用​​:让程序运行到此处时暂停,方便观察。
  • ​操作​​:在代码行号左侧单击,出现红点。
  • (示例:在第3行result = 1和第5行result *= i设置断点)

​​2. 启动调试模式​​

  • ​方法1​​:点击右上角的绿色甲虫图标 🐞。
  • ​方法2​​:右键代码 → 选择 Debug '文件名'

​​3. 调试界面布局​​

启动调试后,PyCharm 会自动进入调试视图,主要分为:

  • ​① 调试工具栏​​:控制代码执行(步进、恢复等)。
  • ​② 变量窗口(Variables)​​:显示当前作用域内的变量值。
  • ​③ 控制台(Console)​​:显示程序输出和输入。

​​三、关键调试按钮详解​​

按钮图标名称快捷键作用说明
▶️ResumeF9继续执行程序,直到下一个断点或结束。
➡️Step OverF8执行当前行代码,​​不进入​​函数或循环内部。
⬇️Step IntoF7执行当前行代码,​​进入​​函数内部(比如调试自定义函数时用)。
⬆️Step OutShift+F8从当前函数内部跳出,回到调用它的位置。
🛑StopCtrl+F2终止调试进程。

​​四、实际调试流程(以示例代码为例)​​

​​1. 第一次暂停(断点:第3行)​​

  • ​观察变量窗口​​:此时 n=5result=1(正确)。
  • ​点击 Step Over(F8)​​:执行 result = 1

​​2. 进入循环(断点:第5行)​​

​点击 Step Over(F8)多次​​,观察每次循环时 iresult 的变化:

  • ​问题暴露​​:第一次循环时 i=0,导致 result *= 0,结果变为0!
  • ​错误原因​​:range(n) 生成的是 [0,1,2,3,4],应从 1 开始循环。

​​3. 修复代码​​

修改循环范围:for i in range(1, n+1):

五、调试进阶技巧​​

1. ​​条件断点(Conditional Breakpoint)​​

  • ​作用​​:当满足特定条件时暂停。
  • ​设置​​:右键断点 → 输入条件(如 i == 3)。

2. ​​监视表达式(Watches)​​

  • ​作用​​:实时监控某个变量或表达式的值。
  • ​操作​​:在 Watches 窗口点击 + → 输入表达式(如 i * 2)。

3. ​​重新运行调试​​

  • 修改代码后无需关闭调试,直接点击调试按钮重新启动。

​​六、常见问题排查​​

1. ​​调试时程序没有暂停?​​

  • 检查是否设置了断点。
  • 确保代码确实执行到了断点位置。

2. ​​变量窗口没有显示值?​​

  • 确认程序已暂停在断点处。
  • 检查变量是否在当前作用域内(比如循环内部变量需在循环中查看)。

3. ​​如何调试报错行?​​

  • 当程序抛出异常时,PyCharm 会自动跳转到错误行,并显示堆栈信息。

总结:调试的核心思路​​

  • ​定位问题区域​​:通过错误提示或日志缩小范围。
  • ​设置断点​​:在可疑代码前后暂停。
  • ​逐行跟踪​​:观察变量是否符合预期。
  • ​验证修复​​:修改后重复调试直到正确。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python 中将数字转换为字母的方法

    Python 中将数字转换为字母的方法

    本文详细介绍了在 Python 中将数字转换为字母的几种常用方法,我们介绍了使用 chr() 函数、string 模块和 ord() 函数等方法,并提供了示例代码帮助你理解和应用这些方法,感兴趣的朋友跟随小编一起看看吧
    2023-06-06
  • pygame实现简单五子棋游戏

    pygame实现简单五子棋游戏

    这篇文章主要为大家详细介绍了pygame实现简单五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下<BR>
    2022-01-01
  • python保存网页图片到本地的方法

    python保存网页图片到本地的方法

    这篇文章主要为大家详细介绍了python保存网页图片到本地的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • Python hexstring-list-str之间的转换方法

    Python hexstring-list-str之间的转换方法

    今天小编就为大家分享一篇Python hexstring-list-str之间的转换方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python数据的标准输出与格式化输出

    Python数据的标准输出与格式化输出

    这篇文章主要给大家介绍了关于Python数据的标准输出与格式化输出的相关资料,和大多数语言一样,Python也是用print()函数来进行输出,需要的朋友可以参考下
    2023-08-08
  • python docx段落对齐实现方式

    python docx段落对齐实现方式

    python-docx库是一个用于创建和更新MicrosoftWord文档的库,提供了丰富的功能,包括段落对齐方式设置,段落对齐方式可以通过Paragraph对象的alignment属性来设置,常用的对齐方式包括左对齐、右对齐、居中对齐、两端对齐等
    2024-11-11
  • 基于Python制作IP查询网站

    基于Python制作IP查询网站

    这篇文章主要为大家详细介绍了如何使用python快速做一个简易查内网IP网站,通过电脑访问网站就知道自己的IP地址,感兴趣的小伙伴可以了解下
    2024-10-10
  • Random 在 Python 中的使用方法

    Random 在 Python 中的使用方法

    random() 方法返回随机生成的一个实数,它在[0,1)范围内。这篇文章主要介绍了Random 在 Python 中的使用方法,需要的朋友可以参考下
    2018-08-08
  • 一文详解Python中多进程和进程池的使用方法

    一文详解Python中多进程和进程池的使用方法

    这篇文章将介绍Python中多进程和进程池的使用方法,并提供一些实用的案例供大家参考,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-04-04
  • 浅谈python函数之作用域(python3.5)

    浅谈python函数之作用域(python3.5)

    下面小编就为大家带来一篇浅谈python函数之作用域(python3.5)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10

最新评论