如何使用 IPython2025年3月17日 | 阅读13分钟 当我们在本地机器上安装 Python 时,会默认附带 Python 交互式 shell。在我们的编程之旅中,我们可能会发现标准 REPL 的一些令人兴奋的功能。IPython 是交互式 Python 的高级版本,可以增强我们的编码能力。 IPython shell 是学习 Python 和执行代码的一种更好、更快的方式,无需像 Pycharm 这样的全功能集成开发环境。在本教程中,我们将讨论 Python shell 的主要方面和功能、在 IPython 中编写和执行代码、在 Python 脚本中集成 IPython 以及许多其他重要事项。 IPython 入门在本节中,我们将在本地机器上安装并初始化 IPython。我们需要确保系统中已安装 Python,如果没有,您可以按照以下步骤安装 IPython。 安装和启动 IPython 仅需几个步骤。以下是更新后的解释,其中包括创建和激活虚拟环境的选项,而不是全局安装 IPython。
通过遵循这些步骤,您可以在您的系统上安装并启动 IPython,无论是全局安装还是在虚拟环境中安装,从而为您提供一个强大的交互式 Python 环境,用于开发和实验。 我们需要在终端中输入 ipython。它会打开 ipython shell。 ![]() 一旦您启动 IPython 交互式 shell,您将看到一条消息,确认 IPython 已成功安装在您的机器上。shell 将显示第一个提示符,通常显示为 `In [1]`,表示它已准备好接受输入。 要退出 IPython 交互式 shell 并返回常规命令行,您可以使用 `exit` 命令。通过执行 `exit`,您将从 IPython 切换回命令行环境。 现在您已经启动并运行了 IPython,您可以开始探索其强大的功能,看看它如何增强您的 Python 工作流程。IPython 提供了一个交互式且高效的环境来编写和执行 Python 代码,提供了一系列功能,如代码自动补全、历史管理、内联文档、调试工具等。利用这些功能来简化您的 Python 开发,使您的编码体验更具生产力。 使用 IPython 改善您的交互式 Python 工作流程然而,尽管 Python shell 是一个非常高效和多功能的工具,但 IPython 通过其强大的功能将事情提升到了另一个层次,从而增强了您的编码效率。以下是构成更用户友好界面的显著区别 - 增强的交互式环境 - IPython 提供了一个交互式环境,具有语法高亮、Tab 键补全和多行编辑等功能。这些功能使编写和修改代码变得更加容易,增强了整体编码体验。 丰富的输出和可视化 - IPython 允许直接在 shell 中显示丰富的输出,包括 HTML、图像、音频和视频。它还与 Matplotlib 等数据可视化库良好集成,方便创建和探索绘图和图表。 强大的历史管理 - IPython 会记录您执行过的命令历史,让您可以轻松地回忆和重用以前的代码片段。您可以使用键盘快捷键导航命令历史并搜索特定命令,从而节省时间和精力。 魔术命令 - IPython 引入了魔术命令,它们以前缀 % 或 %% 开头。这些命令提供了额外的功能,例如系统命令、代码执行计时、调试等。魔术命令通过简化常见任务和提供对有用功能的快速访问来提高生产力。 集成的帮助和文档:IPython 提供了内置的帮助和文档功能。通过使用 ? 符号,您可以直接在 shell 中访问文档并获取有关对象、函数和模块的信息。这使得在不离开编码环境的情况下探索和理解 Python API 变得很方便。 这些优势对程序员来说产生了巨大的差异。IPython 不仅仅局限于命令行 shell;它也是 Jupyter Notebooks 的一部分。Jupyter Notebooks 提供了一个基于浏览器的交互式界面,利用了 IPython 的强大功能,提供了类似的功能和能力。 标准的 Python shell 提供了一个交互式命令行界面,您可以在其中与 Python 互动。它允许您输入语句或表达式,然后由 Python 解释器执行,并显示结果输出。shell 以读-求值-打印循环 (REPL) 的方式运行,您可以一次输入一个命令或代码片段,观察其执行情况,并立即看到输出。这使得可以快速进行实验、测试小段代码以及以交互方式探索 Python 功能。 ![]() 在提供的代码示例中,您能够定义变量,例如 first_name 和 last_name,并连接这两个字符串。此外,在 Python shell 中,您可以通过定义其他对象(如函数和类对象)来创建更复杂的程序。 IPython 交互式 shell 与 Python shell 有相似之处,但提供了更具表现力的代码布局和附加功能。一个显著的区别是 IPython 界面中存在带编号的输入和输出提示符。这些提示符指示了执行顺序,并使得更容易地引用之前的输入和输出。 在 IPython 中,每个输入行都以一个数字为前缀,通常显示为 In [X]:,其中 X 代表执行次数。这种编号使您可以跟踪命令输入和执行的顺序。 ![]() 当您使用 `ipython` 命令启动一个新的 IPython 会话时,您可以在 shell 中创建变量。IPython 会为您定义的每个变量分配一个唯一的编号。此外,两个变量的连接会生成一个输出提示符。IPython 中的代码排列在视觉上更清晰,提示符之间用一个空格隔开。 现在,让我们深入探讨这些数字的重要性,并探索 IPython 的输入和输出提示符,这是其关键的区别性特征之一。 在 IPython 中,每个输入行都伴随着一个输入提示符,表示为 `In [X]:`,其中 `X` 是一个顺序递增的数字。这些数字作为您输入的命令的参考。输入提示符使得在您的代码历史中识别和重新访问特定命令变得更加容易。 IPython 还会生成输出提示符,标记为 `Out[X]:`,它对应于已执行代码的结果。输出提示符有助于在输入命令和其相应输出之间建立联系,提供了两者之间的清晰链接。此功能简化了追溯计算或参考先前结果的任务。 IPython 中带编号的输入和输出提示符的存在增强了代码的可读性,使您能够更有效地理解和遵循执行流程。独特的排列方式,即提示符之间用空格隔开,进一步增强了代码的视觉清晰度。 凭借这些功能,IPython 提供了一个更直观、更具交互性的编码环境,使得处理代码、探索数据以及记录分析或实验变得更加容易。 理解输入和输出提示符Ipython shell 和标准 Python shell 之间最显著的区别之一是带编号的输入和输出。它也被称为输入和输出提示符。 在 IPython 中,一个提示符指的是作为输入输入的一行或多行代码。每个提示符都有一个由 IPython 分配的唯一编号。当您执行代码并收到输出时,输出提示符将与相应的输入提示符具有相同的编号。 我们可以看到,我们在第 1 个提示符中定义了 first_name,在第 2 个提示符中定义了 last_name,在第 3 个提示符中定义了 sports。在提示符 4 中,我们使用 f-string 来连接这些变量的值。它显示了组合后的字符串结果。 在 Ipython 中,我们可以访问 In 和 Out 变量来打印我们在终端中输入的所有输入输出的列表。 现在,我们将 Ipython shell 与标准的 Python shell 界面进行比较。 与标准 Python shell 不同,交互式 Python shell 不使用带编号的输入和输出提示符。相反,它使用 >>> 符号来表示输入代码语句或表达式的提示符。 像 IPython 这样的交互式 shell 将代码分为输入和输出提示符,这增强了使用 Python 代码的直观性。输入和输出提示符之间的这种区别有助于理解和执行代码,从而在使用 Python 工作时能够获得更有效的学习体验。 在 Python 中应用多行代码Python 交互式 shell 不够用户友好,因为它需要花费大量时间,而且我们需要了解 Python 基于缩进的语法。在交互式 shell 中,我们需要手动设置代码块的每一行缩进。让我们通过以下示例来理解。 示例 - ![]() 我们必须在交互式 shell 中使用四个空格的缩进,否则代码会抛出错误,并且我们必须从头开始定义函数。 而 IPython shell 会自动对函数的后续行应用缩进。让我们看下面的例子。 示例 - IPython 相对于 Python 标准 shell 的一个优势是它在处理代码块(如函数)时能够自动处理缩进。在 IPython 交互式 shell 中,您无需手动在函数的第一行之后应用缩进。 IPython 理解并识别 Python 基于缩进的块结构。因此,当输入像函数这样的多行代码块时,IPython 会智能地为您处理缩进。您只需输入代码,而无需担心显式添加适当的缩进级别。 将 Python 嵌入到脚本中IPython 提供了一个与标准 Python shell 不同的独特功能:能够将 IPython 嵌入到现有的 Python 脚本中。这个功能在您的编码环境中提供了宝贵的功能,允许您在脚本中集成一个交互式会话。 当您将 IPython 嵌入到 Python 脚本中时,您就能够交互式地探索和操作变量,以及执行您在脚本中定义的命令。这意味着您可以在脚本执行的特定点暂停,并与该阶段的变量和对象进行交互。 我们创建一个 new_test.py 文件并编写一些代码。 示例 - embed() 方法会启动一个交互式会话。我们可以像运行任何 Python 脚本一样运行 new_test.py 文件。Python 将执行所有代码行,直到遇到对 embed() 的调用。让我们通过以下示例来理解。 ![]() 在执行了我们脚本第 8 行的 print() 语句后,终端会显示输出 "Pat Cummins plays Cricket"。紧接着,交互式 shell 被启动。这个交互式 shell 允许您在脚本的上下文中交互式地探索变量和执行命令。 但是,需要注意的是,在 embed() 函数调用之后定义的变量,例如 salary,在命名空间中是不可用的,如提示符 3 所示。这种行为确保只有您特意选择导入到交互式 shell 命名空间的变量才是可访问的。它防止了用不必要的变量使命名空间变得混乱,并鼓励对脚本变量进行更受控和有目的的交互。 Ipython 魔术命令与 Ipython 不同,Python 交互式 shell 没有自己的命令。Ipython 中的魔术命令使其比 REPL 更具优势。Ipython 中的魔术命令通常以前缀百分号 (%) 表示。当使用单个百分号时,该命令应用于单行代码。另一方面,如果使用双百分号 (%%),该命令将应用于整个提示符,这可以包含多行代码。在 Ipython 中,这样的提示符被称为单元格 (cell)。 我们将学习几个魔术命令,以帮助我们更好地理解 Ipython。 导航文件结构使用 %pwd 命令,我们可以在文件系统中显示当前工作目录。这类似于 UNIX shell 的内置 pwd 命令。 导航文件和目录的能力是 IPython 提供的一个宝贵功能。它提供了清晰性和便利性,特别是在处理复杂项目或同时管理多个目录时。 要列出您当前位置的文件和目录,您可以使用 %ls 命令。 IPython 中的 `%ls` 命令用于列出您当前位置内的所有目录。当您需要快速检查目录内容而无需离开 IPython 环境时,此命令非常有用。 同样,`%cd` 命令允许您从 IPython 内部导航您机器的文件结构。它的功能与命令行界面中使用的 `cd` 命令类似。通过使用 `%cd`,您可以直接从 IPython 环境将当前工作目录更改为文件系统中的其他位置。 这里我们进入 PythonTest 文件夹。提示符显示了文件路径。 通过在交互式 shell 中结合使用这三个文件系统遍历命令(%cd、%ls 和 %pwd),定位文件或文件夹就变成了一项简单的任务。 为工作目录添加书签当您想快速访问您喜欢的目录而无需浏览整个文件结构时,IPython 中的书签功能是一个有用的工具。它允许您为特定目录创建书签,从而方便地直接跳转到这些位置。 要创建书签,您可以使用语法 %bookmark 通过创建此书签,您建立了对所需目录的引用。之后,您可以使用 %cd -b 书签功能简化了对常用目录的访问,在处理特定项目或在不同文件夹之间切换时为您节省时间和精力。它提供了一种方便的方式来存储和检索目录位置,简化了您的工作流程并提高了在 IPython 环境中的生产力。 因此,我们通过包含文件夹路径为 PythonTest 目录创建了书签。 使用书签,我们可以使用 %cd -b PythonTest 命令跳转到该文件夹,无论当前位置在哪里。 结论在本教程中,我们讨论了 Ipython 的安装和初始化,区分了 Ipython 与标准 Python shell,并学习了一些魔术命令。这些魔术命令使编码更有效率。尽管 Ipython 非常有效,但还有其他选项,如 bpython 和标准 REPL,可以提升编码技能。 下一个主题改进 Python 中的面向对象设计 |
我们请求您订阅我们的新闻通讯以获取最新更新。