0

0

Pycharm入门基础之代码调试

Y2J

Y2J

发布时间:2017-05-12 10:39:13

|

3763人浏览过

|

来源于php中文网

原创

这篇文章主要为大家详细介绍了最全的pycharm学习教程第三篇代码运行调试,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

Pycharm代码运行调试,具体内容如下

1、准备工作

  (1)Python版本为2.7或者更高版本

  (2)已经创建了一个Python工程并且添加了内容,具体参考: Getting Started tutorial

2、第一步——运行代码

  打开之前编写的Solver.py文件,在编辑框中右键,选择快捷菜单中的“Run 'Solver'”选项。

  此时脚本文件正常运行并在调试工具窗口中显示程序的输出值:

  接下来我们对这两步操作的具体内容做详细的解释。

3、什么是Run/Debug模式

  每个需要运行/调试的脚本文件都需要一个特殊的配置文件来指定其脚本名称、所在目录以及其他重要的运行调试信息。Pycharm已经集成了这种配置文件,避免用户手动去创建。

  每次当你单击Run或者Debug按钮时(或者在快捷菜单中执行相同操作),实际上都是将当前的运行/调试配置文件加载到当前的调试模型中。

  如果你仔细观察第一张图片就会发现,在组合框中根本就没有 run/debug的相关信息,知道第二张图片中它们才出现。这就意味着当执行运行/调试命令的时候,Solver脚本的run/debug配置文件才会自动生成,正如现在所显示的这样。

  此时再主工具栏中Run(绿色箭头按钮)和Debug(绿色甲壳虫按钮)两个按钮变得可用:

  同时这两个图标还是半透明,也就意味着他们临时的,即由Pycharm自动创建的。

  OK,单击下拉箭头查看当前的可用命令操作:

  如果你已经设置了多个run/debug配置方案,它们将都会显示在这里下拉列表中,单击选中一个作为当前工程的run/debug配置文件。

4、保存run/debug配置信息

  在上图的下拉列表中,单击Edit configuration选项,打开run/debug配置编辑窗口:

  在左侧目录中将会出现两个节点:Python和Default。在第一个节点目录下有一个单一的配置选项'Solver',在第二个选项下则有很多配置信息。

  这意味着什么呢?

  在Default节点下,你只能看到框架的名称或者模式名称,如果你创建一个新的Run/Debug配置文件,它将会在所选中的模式分支下进行创建,如果你更改了Default节点下的设置,相应的与其相关的所有配置文件都会更改。

  例如,你想将Pycharm中所用到的Python解释器替换成远程或者本地解释器,就可以通过更改Python页面下的解释器设置,这样所有新建的调试配置文件都会使用这个新的解释器。

  早Python节点下,只用单一的配置选项'Solver',它属于Python类型的配置,但与Default节点下的Python机制并不相同,它使用一个非透明的图标进行的表示,这是用来指示当前配置文件的保存状态的,当你保存配置文件之后图标即变为非透明状态。例如,我们在Python类型下为当前的Solver脚本新建一个配置文件,取名'Solver1'。

  如果你对已存在的配置文件做了任何更改,这些更改只会应用于对应的脚本区域。

5、正式运行

  我们已经能够通过一种非常直接的方式,接下来我们寻求其他方法来运行脚本。

  正如我们所知,运行脚本意味着加载当前的调试配置文件,因此,运行脚本主要遵循以下流程:

  (1)在主工具栏中,单击run/debug组框,确认当前的调试配置文件信息

  (2)做下面的工作(三选一即可):

    单击运行按钮,加载配置文件

    按下Shift+F10快捷键

    在主菜单上,选择Run → Run

  此时,我们可以在Run tool window.窗口中观察程序的运行结果。

6、运行测试程序

  我们这里并不讨论代码测试的重要性,而是探讨Pycharm如何帮助我们完成这一功能。

7、选择一个测试器

  首先,需要指定一个测试器。单击工具栏的设置按钮,打开Settings/Preferences对话框,然后单击进入Python Intergated Tools页面(可以通过搜索功能找到),默认选择如下:

  在这里我们选择Nosetests,保存并关闭对话框。

8、创建一个test程序块

  首先我们创建一个test实例。Pycharm提供了一种非常智能的创建测试代码的方法:单击选中类名然后按下Ctrl+Shift+T快捷键,或者在主菜单中选择Navigate → Test,如果test程序已存在,则会直接跳转到对应代码,否则创建它:

  按照系统提示进行操作,Pycharm会显示如下对话框:

  单击OK按钮,查看创建结果:

  此时Pycharm已经自动创建了一个测试类,当然这只是一个类框架,需要我们手动编写测试函数

9、运行测试代码

  一切就绪后,右击测试类名,在弹出的快捷菜单中选择运行命令:

  观察运行状态栏中 Test Runner tab的输出结果:

Dora
Dora

创建令人惊叹的3D动画网站,无需编写一行代码。

下载

10、调试运行

  首先要弄清楚,为什么要进行调试?假设我们的程序在运行过程中命中了一个错误,那我们如何定位错误发生的位置?这就需要进行调试。

  在Pycharm中我们可以在其中直接对程序进行调试,唯一需要做的准备工作就是在程序必要的地方加设断点,接下来我们进行详细的介绍:

11、什么是断点?

  一个breakpoint标记了一个行的位置,当程序运行到该行代码的时候,Pycharm会将程序暂时挂起以方便我们对程序的运行状态进行分析。Pycharm支持若干中类型的断点 types of breakpoints,可以通过对应图标进行分辨。

  这里我们采用Python的行断点为例进行介绍

12、设置断点

  方法非常简单,单击代码左侧的空白灰色槽即可:

  注意断点会将对应的代码行标记为红色,这种颜色标记目前还不能被用户所更改,我们会尽快出台解决方案。

  顺便说一句,取消断点的操作也很简单,在同样位置再次单击即可。

  当你将鼠标指针悬停在断点上方时,Pycharm会显示断点的关键信息,行号以及脚本属性,如果你希望更改该断点的属性,右击断点:

  可以尝试对断点属性进行个性化更改,然后观察图标的变化。

13、代码调试

  接下来,我们正式开始对代码进行调试。

  首先从配置文件组框中选择同名的'Solver'文件作为当前调试的配置文件,然后单击调试按钮(绿色甲壳虫样式的按钮):

  接下来会Pycharm会执行以下操作:

  (1)PyCharm开始运行,并在断点处暂停

  (2)断点所在代码行变蓝,意味着Pycharm程序进程已经到达断点处,但尚未执行断点所标记的代码。

  (3)Debug tool window窗口出现,显示当前重要调试信息,并允许用户对调试进程进行更改。

  虽然Pycharm使用手册中已经完整提供了调试窗口中所有按钮0的功能信息,我们这里仍然对其进行简要介绍。我们发现窗口分为两个选项卡:Debugger tab and the Console tab。

  (1)Debugger窗口分为三个可见区域:Frames, Variables, 和 Watches。这些窗口列出了当前的框架、运行的进程,方便用户查看程序空间中按钮1的状态等。当你选择一个框架,就会显示出相关的变量信息,当然这些区域都是可以折叠隐藏的。

  (2)Console窗口显示当前的控制台输出信息,默认这个窗口位于Debugger之下,可以通过单击其标签将其前置显示。

  当然我们可以改变这些窗口的摆放位置,如果你不喜欢程序的默认排版的话。具体参加Moving tabs and areas章节。

  Debugger窗口的工作模式:

  OK,现在程序暂停在了第一断点处,Frames窗口显示的是Solver脚本的第7行代码所对应的进程demo,相关变量a、b、c已经定义,但变量d尚未进行定义。接下来?

  按下F9(或者左侧工具栏的绿色箭头),程序会继续运行到下一断点处,通过这种方式你可以将每个断点都运行一遍,观察变量的变化。

  更多有关 Debugger窗口的信息参见软件手册:product documentation

  Console窗口的工作模式:

  为什么需要用到Console窗口呢?当我们需要查看程序给出的按钮2,或者进行一些额外的临时运算时,就需要在这个窗口里面进行。

  单击Console选项卡使其前置:

  然后单击左侧工具栏中的命令符按钮,显示Python的命令提示符:

  此时激活了控制台机制,尝试在其中执行一些Python命令:

  注意到控制台窗口提供了代码的拼写提示(Ctrl+Space)以及历史记忆(Up/Down keys)功能,更多信息参见: Using Debug Console

  最后,如果你希望Console窗口一直处于可用状态,只需将其移动成为一个单独的窗口即可:

14、再次运行

  在完成了本次调试运行并再次加载调试配置文件之后,我们可以再次运行调试,单击工具栏的run按钮即可。

15、REPL——在控制台界面调试程序

  最后,如果你更习惯工作于控制台环境下,也可以将Pycharm设置成为控制台模式。在主菜单中选择Tools → Run Python Console...来加载控制台:

  此时console窗口将会被激活,并显示为一个单独的窗口:

  在这个控制台窗口中我们可以做很多有意思的事情,接下来我们演示如何将最近编写的Solver.py文件中的代码导入到控制台:

  打开Solver.py文件(打开的方法多种多样,例如Ctrl+E - View → Recent Files),全选文件中的代码内容(Ctrl+A, or Edit → Select All),然后按下Alt+Shift+E(或者右击在弹出的快捷菜单中选择Execute Selection in Console):

  此时,Pycharm就会自动将选中的代码导入到控制台界面,方便我们对其进行编辑:

【相关推荐】

1. 按钮3

2. 按钮4

3. 按钮5

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

16

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

23

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

75

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

95

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

218

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

420

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

168

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

222

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

33

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.5万人学习

Git 教程
Git 教程

共21课时 | 4.1万人学习

Excel 教程
Excel 教程

共162课时 | 21万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号