当前位置: 首页 > news >正文

PyCharm简单调试

本文简单讲述一下PyCharm中经常用到的调试操作。

示例代码如下:

for i in range(10):print("hello", i)if i > 2:print("ok!")

在代码前面打上断点,如下图所示:
在这里插入图片描述
单机调试按钮Debug
在这里插入图片描述
单机Resume Program按钮,开始调试;
在这里插入图片描述
PyCharm调试模式下,Resume Program(恢复程序)是一个调试操作,用于让程序在当前断点处继续执行,直到程序结束或遇到下一个断点为止。单机一次Resume Program按钮后的效果如下所示。
首先,程序会运行for i in range(10):这行代码,随后会在相应位置显示变量i在内存中值的变化。此时程序停在了print("hello", i)这行,但是还没有运行这一行。
在这里插入图片描述
再单机一次Resume Program按钮,运行效果如下所示。执行print("hello", i)这行代码,程序停在’if i > 2:'这行,但并没有运行这一行。也可以点击Console选项卡,查看运行的效果。
在这里插入图片描述
重复以上步骤,可以观察程序运行的状态,以及变量i的值在内存中的变化。
在这里插入图片描述
PyCharm调试模式中的其他操作还有Step OverStep IntoStep Into My CodeStep Out等。下面简单解释一下各种操作。

Step Over (跳过)

  • 功能:执行当前行的代码,但如果该行代码调用了其他函数或方法,调试器不会进入该函数内部,而是跳过它,继续执行当前函数的下一行。
  • 用途:当你不关心当前行调用的函数的内部实现,只希望快速跳过这些函数调用时使用。

示例代码:

def foo():return bar()  # Step Over 会跳过 bar() 的执行,而不进入 bar() 的代码内部def bar():print("Inside bar!")

Step Into (进入)

  • 功能:当程序执行到某一行代码时,如果该行是一个函数调用,Step Into会让你进入该函数的实现细节并逐行调试。
  • 用途:当你希望查看某个函数内部的实现并调试其中的代码时使用。

示例代码:

def foo():return bar()  # Step Into 会进入 bar() 函数并开始调试 bar() 内部代码def bar():print("Inside bar!")

Step Into My Code (仅进入我的代码)

  • 功能:与Step Into类似,但这个操作仅会进入你自己编写的代码,而忽略第三方库(例如外部依赖或者系统库)中的代码。
  • 用途:当你希望避免调试外部库的代码,专注于自己编写的业务逻辑时使用。可以避免在调试过程中进入不相关的外部代码。

示例代码:

def foo():return bar()  # 如果 bar() 是外部库的函数,Step Into My Code 会跳过它,直接跳到 foo() 的下一行

Step Out (跳出)

  • 功能:当你进入一个函数进行调试时,Step Out会执行完当前函数的剩余代码并跳出函数,直接返回到调用该函数的位置(即跳出当前函数并回到调用它的地方)。
  • 用途:如果你已经进入一个函数调试,但不想再逐行执行该函数的代码,而是希望尽快返回到调用它的位置时使用。

示例代码:

def foo():print("In foo")bar()  # Step Out 会让你跳出 bar() 函数并返回到 foo() 调用它的位置def bar():print("In bar")

感谢浏览,一起学习!


http://www.mrgr.cn/news/83029.html

相关文章:

  • XS5037C一款应用于专业安防摄像机的图像信号处理芯片,支持MIPI和 DVP 接口,内置高性能ISP处理器,支持3D降噪和数字宽动态
  • (七)人工智能进阶之人脸识别:从刷脸支付到智能安防的奥秘,小白都可以入手的MTCNN+Arcface网络
  • 计算机毕业设计Python中华古诗词知识图谱可视化 古诗词智能问答系统 古诗词数据分析 古诗词情感分析模型 自然语言处理NLP 机器学习 深度学习
  • 后端Java开发:第九天
  • vue2 高德地图 绘制多边形 圆形 可编辑修改
  • C++ shared_ptr进一步认知,为什么引用计数>2退出作用域都可以调用析构
  • 左神算法基础巩固--3
  • SpringBootWeb案例-1(day10)
  • jenkins入门13--pipeline
  • 2020 年 12 月青少年软编等考 C 语言五级真题解析
  • moviepy 将mp4视频文件提取音频mp3 - python 实现
  • Linux初识——基本指令
  • Requests-数据解析bs4+xpath
  • 【0385】Postgres内核 OS 磁盘上创建 slot ( 3 - 1 )
  • STM32-笔记38-I2C-oled实验
  • STM32-DMA数据转运
  • R语言装环境Gcc报错以及scater包的安装
  • (七)人工智能进阶之人脸识别:从刷脸支付到智能安防的奥秘,小白都可以入手的MTCNN+Arcface网络
  • 用Python实现简单的任务自动化
  • SQL从入门到实战
  • 【WPF】使用BitmapImage给Image的Source赋值,并释放原占用资源,避免删除原文件时导致程序崩溃
  • Vue 组件开发:构建高效可复用的 UI 构建块
  • 数据库语句学习
  • 51c大模型~合集102
  • 121 买入股票的最佳时机
  • 【cuda学习日记】2.1 2D matrix操作