【最新版】PyCharm基础调试功能详解

文章目录

  • 一、断点
    • 1. 断点的类型
      • a. 行断点
      • b. 异常断点
    • 2. 设置断点
      • a. 设置行断点
      • b. 设置异常断点
    • 3. 管理断点
      • a. 删除断点
      • b. 将断点静音
  • 二、调试功能
    • 0. 测试代码
    • 1. 设置断点
    • 2. 调试的多种启动方式
    • 3. 观察调试控制台
      • a. 步过
      • b. 步入
      • c. 单步执行代码
      • d. 步出
      • e. 运行到光标处
      • f. 重新启动程序
      • g. 停止调试
  • 三、高级调试功能

  PyCharm 是一款强大的 Python 集成开发环境(IDE),提供了丰富的调试工具,帮助开发者在代码中找到并解决问题。下面是我将详细介绍 PyCharm 如何进行调试:

一、断点

  断点是在特定点暂停程序执行的特殊标记,以便于检查程序状态和行为。断点可以很简单(例如,在到达某一行代码时挂起程序),也可以涉及更复杂的逻辑(检查其他条件、编写日志消息等)。
  设置断点后,断点将保留在项目中,直到显式删除它(临时断点除外)。如果带有断点的文件在外部进行了修改,例如,通过 VCS 更新或在外部编辑器中进行了更改,并且行号已更改,则断点将相应地移动。注意,在进行此类更改时,PyCharm 必须处于运行状态,否则它们将被忽视。

1. 断点的类型

a. 行断点

  在到达设置断点的代码行时挂起程序:可以在任何可执行代码行上设置这种类型的断点。

b. 异常断点

  在抛出程序或其子类时挂起程序。在 PyCharm 中,您可以为 Python 异常设置断点。对于 PyCharm Professional,可以使用 Django、Jinja2、JavaScript 和 Jupyter 异常断点。它们全局应用于异常条件,不需要特定的源代码引用。Exception

2. 设置断点

a. 设置行断点

  单击要设置断点的可执行代码行左侧行号位置:
在这里插入图片描述

b. 设置异常断点

  • Ctrl+Shift+F8或选择“运行”|”从主菜单查看断点。
  • 在“断点”对话框中,按AltInsert或单击 “添加”按钮,然后选择“Python 异常断点”或“JavaScript 异常断点”。

3. 管理断点

a. 删除断点

  • 对于非异常断点:单击装订线中的断点。

  • 对于所有断点:转到“运行”|”查看断点 Ctrl+Shift+F8,选择断点,然后单击“删除” Delete.

b. 将断点静音

  如果一段时间内不需要在断点处停留,可以将其静音。这允许您在不离开调试器会话的情况下恢复正常的程序操作。之后,您可以取消静音断点并继续调试。

  • 单击“调试”工具窗口工具栏中的“静音断点”按钮
    在这里插入图片描述

二、调试功能

0. 测试代码

def calculate_sum(numbers):
    total = 0
    for num in numbers:
        total += num
        # 在这里设置一个断点,以便在每次迭代时停止
        # 观察变量的值
        print(f'Current total: {total}')
    return total


if __name__ == "__main__":
    # 创建一个数字列表
    my_numbers = [1, 2, 3, 4, 5]

    # 调用计算总和的函数
    result = calculate_sum(my_numbers)

    # 打印最终结果
    print(f'The sum of the numbers is: {result}')

1. 设置断点

  在你想要观察变量值的位置设置断点。比如,我们设置一个断点在print(f'Current total: {total}')行上。

  • 在行号左侧单击,将在该行设置一个红色的断点。
    在这里插入图片描述

2. 调试的多种启动方式

  • 快捷键:Shift+F9 (Fn+Shift+F9)
  • 点击下图“绿色小虫子”按钮
    在这里插入图片描述
  • 鼠标右键点击下图“调试”
    在这里插入图片描述
  • 点击菜单栏运行——调试
    在这里插入图片描述

3. 观察调试控制台

  上述操作完成后,PyCharm 将开始运行代码,当执行到断点时,会在调试控制台中停下。在这里,你可以查看当前的变量值和代码状态,以及其他调试操作。
在这里插入图片描述
在这里插入图片描述

a. 步过

  • Step Over (F8): 执行当前行,如果当前行是一个函数,则不会进入函数内部。
    在这里插入图片描述
    步过右侧各图标依次如下,下面将不再截图介绍

b. 步入

  • Step Into (F7): 进入函数内部执行,如果当前行不是一个函数调用,则表现和 Step Over 一样。

c. 单步执行代码

d. 步出

  • Step Out (Shift + F8): 执行完当前函数的剩余部分,并停在调用该函数的地方。

e. 运行到光标处

  • Continue (F9): 继续执行程序,直到下一个断点或者程序结束。

f. 重新启动程序

  • Restart (Ctrl + F5): 重新启动程序。(左侧最上方"绿色回旋")
    在这里插入图片描述

g. 停止调试

  • Stop (Ctrl + F2): 停止调试。(左侧中间"红色方框")
    在这里插入图片描述

三、高级调试功能

  PyCharm 还提供了一些高级调试功能,比如条件断点、异常断点、远程调试等,具体有待进一步完善~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/248244.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vivado约束方法6

生成的时钟 定时约束向导建议在的输出上创建一个生成的时钟顺序单元,当它直接或通过驱动其他顺序单元的时钟引脚时一些互连逻辑。与PLL或MMCM不同,用户逻辑不能将主时钟,因此向导仅提供指定除法系数的选项,如中所示如下图所示&am…

protobuf基础学习

部分内容出自:https://blog.csdn.net/baidu_32237719/article/details/99723353 proto文件来预先定义的消息格式。数据包是按照proto文件所定义的消息格式完成二进制码流的编码和解码。proto文件,简单地说,就是一个消息的协议文件&#xff0c…

Cloudflare始终使用HTTPS且带参数跳转到www的域名

文章目录 设置教程设置图跳转实测 设置教程 关闭 SSL/TLS -> 边缘证书 的 Always Use HTTPS 规则 -> 页面规则 -> URL: http://www.example.com/* 设置成始终使用HTTPS 规则 -> 页面规则 -> URL: example.com/* 设置成 转发URL301重定向到 to https://www.ex…

sql 数据类型注入+tamper

数字型 0-9 查询语句: $sql"select * from sy_guestbook where id$i"; 字符型 a-z 中文 标点符号 加入了单引号 查询语句: $sql"select * from sy_guestbook where gTpl$g"; simple order by 16--select * from sy_guestbook w…

【Spring】Spring AOP

Spring AOP AOP概述什么是AOP Spring AOP快速入门1.引入AOP依赖2. 编写AOP程序 Spring AOP 详解Spring AOP 核心概念切点(Pointcut)连接点(Join Point)通知(Advice)切面(Aspect) 通知类型PointCut切面优先级Order切点表达式execution表达式annotation自定义注解切面类 AOP原理代…

记录一下github深度学习的错误

解决办法:Anaconda\envs\pytorch_gpu\Lib\site-packages\visdom\server 修改run_server.py中注释掉第1917行的代码 def download_scripts_and_run(): #download_scripts() ~~~~~~~~这行 main() 替换static 获取方式:GitHub - littledee…

Vue 子传父 组件传参 defineEmits

defineEmits 属性:用于创建自定义事件,接收子组件传递过来的数据。 注意:如果自定义事件的名称,和原生事件的名称一样,那么只会触发自定义事件。 defineEmits 仅适用于 setup 语法糖,其它写法请见&#x…

docker创建镜像 Dockerfile

目录 docker的创建镜像的方式 dockerfile形成(原理) docker的核心作用 docker的文件结构 dockerfile的语法 CMD和ENTRPOINT的区别 创建dockerfile镜像 区别 RUN命令的优化 如何把run命令写在一块 copy和ADD区别 区别 centos7 构建Apache的d…

音视频参数介绍

一、视频参数概念 单个视频帧:可以简单地理解成为一张图片 单个视频帧主要的参数概念: 分辨率: 分辨率是指图像或显示器上像素的数量,通常用横向像素数乘以纵向像素数表示。例如,1920x1080 表示宽度为1920像素&…

Linux 使用 Anaconda+Uwsgi 部署 Django项目和前端项目

一、安装Anaconda 使用Anaconda创建python环境的优点: virtualenv只能创建系统原有的python版本,而不能创建创建任意版本的环境 而Anaconda的虚拟环境中,你可以指定任意现存可使用的python环境(包括比原环境版本高的python版本&a…

Linux内核介绍

文章目录 Linux内核介绍1. Linux内核的起源和发展历程1.1 起源1.2 发展历程 2. Linux内核的主要特性2.1 多任务处理2.2 多用户2.3 内存管理2.4 网络功能 3. Linux内核的架构3.1 用户空间与内核空间3.2 内核模块 4. Linux内核的疑难技术点解析4.1 进程调度4.2 内存管理 5. Linux…

Java: OpenWeatherMap json Deserialization of Java Objects

openweathermap.json {"coord": {"lon": 114.0683, "lat":22.5455},"weather":[ {"id": 803, "main":"Clouds", "description":"多云", "icon":"04d"}],&quo…

AI日报:OpenAI向新用户重新开放ChatGPT Plus订阅

欢迎订阅专栏 《AI日报》 获取人工智能邻域最新资讯 文章目录 总览Chatgptplus重新开放订阅#暂停原因功能 OpenAI的1000万美元安全人工智能拨款拨款初衷学术捐赠 总览 ChatGPT Plus再次向新用户开放,但目前每三小时限制发送40条消息。 OpenAI还宣布拨款1000万美元…

C++使用回调函数的两种方式

一.函数指针 #include <iostream>typedef void (*callback)(int ,int); class MyTest { public:void setCallback(callback cb){m_callback = cb;}void add(int a, int b){m_callback(a, b);}private:callback m_callback; };void onCallback(int a, int b) {std::cout …

MySQL DQL

目录 一、DQL概述 二、基础查询 三、条件查询 四、聚合查询 五、分组查询 六、排序查询 七、分页查询 八、其它测试 九、执行顺序 一、DQL概述 DQL英文全称是Data Query Language(数据查询语言)&#xff0c;数据查询语言&#xff0c;用来查询数据库中表的记录。查询关…

DBA面试题

Oracle体系结构 &#xff08;1&#xff09;、Oracle实例内存中包含哪些部分? 答: sga与pga sga:是一组共享的内存区域&#xff0c;包含数据字典缓存、库缓存、重做日志缓冲区 Pga:为每个服务器进程分配的非共享内存&#xff0c;存储会话状态和私有SOL工作区 在Oracle数据库中&…

安装python

1.下载python 选择版本 选择可执行文件安装包 2.安装 输入python检查是否安装成功

gRPC基本用法:以人脸识别为例,搭建一个简单的gRPC服务

0. gRPC简介 相关网站&#xff1a; 中文文档&#xff1a;gRPC 官方文档中文版_V1.0 官网&#xff1a;gRPC 介绍&#xff08;以下引自官方文档中文版中的介绍&#xff09;&#xff1a; gRPC是一个高性能、开源和通用的 RPC 框架&#xff0c;面向移动和 HTTP/2 设计。目前提供 C…

4.qml 3D-Light、DirectionalLight、PointLight、SpotLight、AxisHelper类深入学习

今天我们学习灯光类 首先来学习Light类&#xff0c;它是所有灯光的虚基类&#xff0c;该类是无法创建的&#xff0c;主要是为子类提供很多公共属性。 常用属性如下所示&#xff1a; ambientColor : color&#xff0c;该属性定义在被该光照亮之前应用于材质的环境颜色。默认值…

neo4j如何创建多个数据库

1.在neo4j的压缩包解压位置找到neo4j.conf文件 "D:\neo4j\neo4j-community-3.5.5\conf\neo4j.conf"2.修改文件 新增dbms.activate_database**.db 再重新neo4j打开网页就进入到新建的数据库中 如果要切换&#xff0c;就把原来的注释掉就可以