先决条件

  • 您已经创建了一个 Python 项目并使用以下代码填充它:

    import math def demo(a, b, c): d = b ** 2 - 4 * a * c if d > 0: disc = math.sqrt(d) root1 = (-b + disc) / (2 * a ) root2 = (-b - disc) / (2 * a) return root1, root2 elif d == 0: return -b / (2 * a) else: return "This equation has no roots" class Solver: pass if __name__ == '__main__': 求解器 = Solver() a = int(input("a: ")) b = int(input("b:")) c = int(input("c: ")) result = demo(a, b, c) print(result)
  • 您已经配置了 Python 解释器。请注意,对于当前项目,您的 Python 解释器版本应为 3.0 或更高版本。

第一次运行

打开类Solver.py进行编辑F4,然后右键单击编辑器背景。然后从上下文菜单中选择运行“求解器” :

运行命令

脚本运行。输入 a、b 和 c 的值以查看运行工具窗口中的输出:

执行结果

让我们详细探讨一下我们做了什么以及我们看到了什么。

运行/调试配置 - 它是什么?

您希望在 PyCharm 中运行或调试的每个脚本或测试都需要一个特殊的配置文件,该配置文件指定脚本名称、工作目录以及运行或调试所需的其他重要数据。PyCharm 带有许多这样的预定义配置文件或运行/调试配置,它们提供模式,您可以根据这些配置文件创建自己的任意数量的运行/调试配置。

每次单击“运行”或“调试”按钮(或从上下文菜单中选择“运行”或“调试”命令)时,实际上都会在运行或调试模式下启动当前的运行/调试配置。

如果您查看第一张图片,您会注意到组合框中根本没有运行/调试配置;在它出现的第二张图像上,标有绿色圆圈。这意味着当您从上下文菜单中选择Run 'Solver'时,PyCharm 会自动创建 Solver 运行/调试配置。现在,由于此运行/调试配置标有绿色圆圈,因此它是最新的。

查看第二张图片上的主工具栏:当前运行/调试配置在组合框中可见。在其右侧,您会看到按钮跑调试在覆盖范围内运行探查器并发图;组合框中的运行/调试配置是 Solver。

您还会看到它的图标显示为半透明。这是什么意思?这意味着 Solver 运行/调试配置是临时的- PyCharm 已自动创建它。

好的,现在单击向下箭头以显示可用命令,并在分隔线下方显示现有运行/调试配置列表:

运行/调试配置列表

如果您有更多运行/调试配置,现有配置的列表将变得更广泛。如果您单击此列表中的运行/调试配置之一,它将成为当前配置。

保存运行/调试配置

选择此命令以保存临时运行/调试配置“求解器” - 现在此配置变为永久。因此,它得到了正常的图标。

编辑运行/调试配置

此命令在列表中排在第一位。选择Edit configurations,然后看到Run/Debug Configurations 对话框打开:

运行/调试配置

在这里您可以看到Solver配置及其默认设置。

默认配置选项派生自预定义的 Python 模板。单击编辑配置模板链接以预览和修改模式。

修改配置模板

例如,您想更改 Python 解释器以使用远程或其他本地解释器。好的,在 Python 页面中选择您选择的解释器 - 然后任何新创建的 Python 类型的运行/调试配置都将使用此解释器。

Python节点下,您会看到唯一的运行/调试配置Solver。它属于 Python 类型,是针对 Python 模式创建的。它用正常不透明度的图标表示——它对应于永久运行/调试配置(请记住,它变成永久的,因为你已经保存了它——但是,任何特别创建的运行/调试配置也变成永久的)。例如,为同一 Solver 脚本创建 Python 类型的新运行/调试配置,并将其命名为“Solver1”。

如果您更改现有运行/调试配置之一中的任何内容,那么只有这个特定的运行/调试配置会受到影响。

从文本文件重定向标准输入

您可以使用“运行/调试配置”对话框自动提交来自文本文件的输入值,而不是在“运行”工具窗口中键入它们。

使用以下 a、b 和 c 值创建in.txt文件:

1 11 1

要启用重定向,请选中Redirect input from复选框并指定in.txt文件的路径。

将数据从文本文件重定向到标准输入

保存运行/调试配置并运行它。在运行工具窗口中预览执行结果。

从标准输入中的文本文件重定向数据

将参数传递给正在运行的脚本

运行 Python 脚本时,您可以将各种值作为命令行参数传递。使用Python 运行/调试配置中的Parameter字段添加参数或插入宏。

  1. 修改代码示例,使其可以在计算中使用命令行参数值而不是“4”。

    导入数学 import sys def demo(a, b, c): n = float(sys.argv[1]) d = b ** 2 - n * a * c if d > 0: disc = math.sqrt(d) root1 = (-b + disc) / (2 * a) root2 = (-b - disc) / (2 * a) return root1, root2 elif d == 0: return -b / (2 * a) else: return “这个方程没有根”类求解器:如果 __name__ == '__main__' 则通过:求解器 = Solver() a = int(input("a: ")) b = int(input("b: ")) c = int(input("c: ")) 结果 = demo(a, b, c ) 打印(结果)
  2. 打开Solver运行/调试配置

  3. Run/Debug Configurations对话框中,从 Python 运行/调试配置列表中选择Solver。然后,单击“参数”字段中的+并从可用宏列表中选择ClipboadContent 。

    将宏添加到 Solver 运行/调试配置

    在此示例中,剪贴板包含值 76,并显示在宏预览区域中。

    单击插入以添加选定的宏。

  4. 运行Solver运行/调试配置。请注意,命令行现在包含“76”作为参数。

    使用剪贴板内容作为命令行参数执行 Solver
  5. 将任何数值复制到剪贴板并重新运行配置以评估宏。

同样,您可以包含其他有用的宏:

  • $FilePath$: 为打开文件的文件路径

  • $ModuleSdkPath$: 项目解释器路径

  • $Prompt$:用于运行配置的字符串输入对话框

定期运行

您已经以最直接的方式之一执行了 Solver 脚本。现在让我们探索运行脚本的其他方法。

正如您已经了解到的,运行脚本实际上意味着启动当前的运行/调试配置。因此,要运行 Solver 脚本,请遵循以下过程:

  1. 在主工具栏上,单击运行/调试配置组合框,并确保“求解器”运行/调试配置是当前配置。

  2. 执行以下操作之一:

    • 单击运行按钮跑,位于运行/调试配置组合框旁边。

    • Shift+F10

    • 从主菜单中,选择运行 | 运行

现在您可以在运行工具窗口中观察结果。

测试运行

我们不会在这里讨论为什么需要测试——让我们假设它是这样的,并讨论 PyCharm 如何帮助它。

选择测试运行器

首先,选择测试运行器。为此,请单击设置主工具栏以打开“设置/首选项”对话框,然后在“工具”节点下,单击“ Python 集成工具”页面。您将在此处选择默认测试运行器:

测试赛跑者

在这种情况下,这是单元测试。应用更改并关闭对话框。

创建测试

要运行测试,您必须先创建它。PyCharm 建议使用一种聪明的方法来存根测试:单击类名,然后按Ctrl+Shift+T,或从主菜单中选择Navigate | 测试。如果存在测试,可以直接跳转;如果没有,PyCharm 将创建它:

创建测试

单击建议的操作,PyCharm 将显示以下对话框:

测试对话框

单击确定,然后在编辑器中看到打开的测试类:

自动生成的测试

PyCharm 为我们生成了一个测试类。然而,这只是一个存根,缺乏实际的测试功能。因此,我们将导入要测试的类,并添加一个测试方法。生成的代码可能如下所示:

import unittest from Solver import Solver class MyTestCase(unittest.TestCase): def test_negative_discr(self): s = Solver() self.assertRaises(Exception) def test_something(self): self.assertEqual(True, False) if __name__ == ' __main__': unittest.main()

运行测试

准备好测试代码后,右键单击测试类名称 - 上下文菜单的Run节点显示Unittests 运行/调试配置

启动它并在 Run 工具窗口的Test Runner选项卡中观察结果:

测试运行

调试运行

首先,为什么我们需要调试?假设您遇到了运行时错误。如何找出它的起源?这是需要调试的地方。

使用 PyCharm,您可以在不离开 IDE 的情况下调试您的应用程序。您唯一需要事先做的就是在需要的地方放置断点。让我们详细探讨一下。

断点 - 它是什么?

断点是源代码的一行,当到达这一行时,PyCharm 将暂停。PyCharm 可以识别几种类型的断点,每一种都用自己的图标表示。

在这里,我们将使用 Python 行断点。

设置断点

这绝对是该过程中最简单的部分。只需单击要探索的行上的排水沟 - 断点就在那里:

断点

请注意,每个断点也在整行上用红色条纹表示。此颜色对应于尚未到达的断点。稍后我们将看到断点处的行是如何改变颜色的。

顺便说一句,删除断点同样容易 - 只需单击排水沟。

将鼠标指针悬停在断点上。PyCharm 显示一个工具提示,其中包含最基本的断点信息 - 行号和脚本地址。但是,如果要更改断点设置,则必须右键单击断点。尝试更改您自己的断点设置,并查看断点图标如何更改。

调试会话

所以,我们现在准备好进行调试了。开始吧。

首先,从运行/调试配置组合框中选择相同的Solver调试运行/调试配置,然后单击右侧的调试图标。

接下来发生什么?

  • PyCharm 启动,然后在第一个断点处暂停执行。

  • 断点处的线变为蓝色。这意味着 PyCharm 已到达断点所在的行,但尚未执行。

  • 在编辑器中执行的行旁边,会出现变量的值。

  • 出现调试工具窗口。此工具窗口显示与调试相关的所有重要信息,并允许管理调试过程。

调试脚本

有关详细信息,请参阅产品文档

在调试器选项卡中工作

好的,我们已经在第一个断点处暂停了。下一步是什么?

F9或单击恢复。程序将在下一个断点处恢复并暂停。这样,您可以单步执行所有设置的断点,观察应用程序中使用的变量。有关详细信息,请参阅文档的调试部分 。

有关详细信息,请参阅调试器选项卡部分。

在控制台选项卡中工作

为什么我们需要它?例如,您想查看错误消息,或执行一些与当前应用程序无关的计算……使用 PyCharm 这不是问题。

单击控制台选项卡将其向前,然后,在此选项卡的工具栏上,单击按钮在控制台中运行

出现 Python 提示,控制台变为交互式。尝试在这个交互式控制台中执行 Python 命令:

交互式调试控制台

请注意,交互式控制台提供代码完成Ctrl+Space和历史记录(向上/向下箭头键)。有关详细信息,请参阅使用调试控制台页面。

您始终可以使用命令工具 |调用调试控制台。从主菜单打开调试命令行。

REPL - 在交互式控制台中运行

最后,如果您习惯使用Python 控制台,您也可以直接在 PyCharm 中进行操作。要启动控制台,请选择工具 | Python 控制台...来自主菜单:

Python 控制台

您可以在交互模式下处理脚本执行:

在 Python 控制台中运行

Python 控制台支持逐行执行 Python 命令和脚本,类似于您使用Python Shell的体验。

使用 Python 控制台

每次您在“工具”菜单上选择相应的命令时,控制台都会显示为一个工具窗口。您可以指定打开 Python 控制台的快捷方式:按Ctrl+Alt+S,导航到Keymap ,为Main menu |指定快捷方式 工具 | Python 或调试控制台

在 PyCharm 中使用 Python 控制台的主要原因是受益于主要的 IDE 功能,例如代码完成、代码分析和快速修复。

Python 控制台中的代码完成

您可以使用向上和向下箭头键浏览已执行命令的历史记录,并重复所需的命令。要预览在执行过程中计算的变量值,请单击显示变量并检查特殊变量列表。

在 Python 控制台中显示变量

该控制台适用于所有类型的 Python 解释器和虚拟环境,包括本地和远程。

将变量预览为数组

当您的变量是 numpy 数组或数据框时,您可以在单独的窗口中将它们预览为数组。要尝试它,请执行以下操作之一:

  • 单击链接View as Array / View as DataFrame

    从 Python 控制台运行时查看数组中的变量
  • 从变量的上下文菜单中,选择View as Array / View as DataFrame

    从 Python 控制台运行时查看数据框中的变量

该变量将在SciView窗口的数据选项卡中打开。

在单独的窗口中查看数组或数据框

在控制台的编辑器中运行源代码

  1. 在编辑器中打开文件,然后选择要执行的代码片段。

  2. 从选择的上下文菜单中,选择在控制台中执行选择,或按Alt+Shift+E

    用于执行代码选择的上下文菜单
  3. 观看代码选择执行:

    在控制台中执行代码选择

默认情况下,Python 控制台使用为项目定义的Python 解释器执行 Python 命令。但是,您可以分配一个替代的 Python 解释器。

配置 Python 控制台设置

  1. Settings/Preferences对话框 ( Ctrl+Alt+S) 中,选择Build, Execution, Deployment | 控制台 | Python控制台

  2. 从Python 解释器列表中选择任何可用的解释器。请注意,您不能在此处引入新的解释器。如果您想提出新的解释器,您需要先创建它。

    搜索替代 Python 解释器
  3. 需要时,单击配置解释器链接以检查已安装软件包的列表并添加新软件包。

    注意启动脚本区域中的代码。它包含打开 Python 控制台后将执行的脚本。使用它来预编码一些必需的 Python 命令。

在处理多个 Python 脚本时,您可能希望在单独的 Python 控制台中执行每个脚本。

运行多个 Python 控制台

  1. 单击新控制台以添加新的 Python 控制台。

  2. 默认情况下,每个控制台的名称为Python Console和索引。要使控制台反映您正在运行的脚本,请右键单击控制台选项卡,选择重命名控制台,然后输入任何有意义的名称。

    重命名 Python 控制台

您在 Python 控制台中运行的所有命令都会被一一执行。如果命令需要大量时间才能执行,您可能需要预览和管理执行队列。

管理命令执行队列

  1. 单击命令队列控制台工具栏以打开队列。

    控制台命令队列
  2. Python 控制台命令队列对话框中,查看命令列表。如果需要,单击消除以从队列中删除命令。

注意,一旦命令被执行,它就会从队列中消失。要预览所有以前执行的命令,请浏览控制台历史记录 ( 控制台历史)。

最后修改:2021 年 12 月 2 日