Python 基础命令 | Magic Commands

17 Mar 2025 | 5 分钟阅读

Python 在 1991 年推出时,普遍的看法是 Python 是一门“风险自负”的语言。但情况已经发生了变化;Python 目前是一门主导性语言,被广泛用于数据科学、机器学习和软件开发。

我们知道 Python 是一门灵活的语言。因此,我们可以添加新特性和函数,例如魔术命令。

本教程将讨论魔术命令。这些魔术命令肯定有助于减轻很多麻烦。

引言

魔术命令是易于设计的语法,方便我们执行例行任务。它们基本上是为了完成 Python 数据分析中的一些常见任务而创建的。事实上,它们控制着 IPython 本身的性质。它用于运行外部脚本或计算一段代码的执行时间。

我们可以在 IPython 中使用两种不同形式的魔术命令。

  • 行魔术命令 - 行魔术命令通过 % 前缀表示,并作用于输入的特定行。它以表达式的形式使用,其返回值可以赋给变量。
  • 单元格魔术命令 - 单元格魔术命令通过 %% 前缀表示,并作用于整个单元格或多行输入。它们将整个块作为字符串接收。

让我们来学习一些最受欢迎和有趣的命令。

内置魔术命令

1.%autocall [模式]

%autocall[模式] 魔术函数用于使函数可以自动调用,而无需使用括号。

2. %automagic

如果我们将其设置为 1,则魔术函数也可以不加 % 前缀而调用。我们需要将其设置为 0 来禁用它。

输出

3. %run

假设我们有一个名为 program_test.py 的文件,其中包含以下代码。

我们使用以下语句来运行。

脚本将运行,而不会导入已定义的变量。

上面的命令将与 python program_script.py 文件具有相同的行为。

注意 - 我们可以使用 %run -i 来访问已定义的变量。

现在我们可以访问 IPython shell 中已执行文件的所有变量。

4. %cd

此魔术命令更改当前目录。它会自动管理我们在 IPython 会话期间访问的目录的内部列表。

输出

用法 -

  • %cd <目录> - 将当前工作目录更改为 <目录>
  • %cd.. - 它将当前目录更改为父目录。
  • %cd - 它将更改为最后一个访问的目录。

5. %dhist

这是一个非常有用的魔术命令;它会打印出当前会话中我们访问过的所有目录。每次执行 %cd 命令时,它都会在 _dh 变量中更新。

输出

6. %edit

edit 魔术命令会打开当前操作系统的默认文本编辑器(Windows 为记事本)来编辑 Python 脚本。我们可以在编辑器中编辑当前的 Python 脚本。

输出

7. %env[GUI名称]

此魔术命令用于启用和禁用 IPython GUI 事件循环集成。当我们使用 GUINAME 参数时,此命令会用指定的 GUI 工具包替换默认的 GUI 工具包。

8. %%timeit

上述命令计算 IPython 环境执行 Python 程序所需的时间。让我们来理解下面的程序。

输出

659 µs ± 19.8 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

9. %lsmagic

此命令将返回所有魔术命令的列表。让我们看下面的例子。

输出

Basic Commands in Python

10. %who

上述命令将返回当前笔记本中定义的所有变量的列表。

输出

11. %pinfo <变量名>

它返回有关变量的详细信息。我们可以检查存储在特定变量名中的对象。让我们来理解下面的例子。

命令 -

输出

Type:        int
String form: 10
Docstring:  
int([x]) -> integer
int(x, base=10) -> integer

Convert a number or string to an integer, or return 0 if no arguments
are given.  If x is a number, return x.__int__().  For floating point
numbers, this truncates towards zero.

If x is not a number or if base is given, then x must be a string,
bytes, or bytearray instance representing an integer literal in the
given base.  The literal can be preceded by '+' or '-' and be surrounded
by whitespace.  The base defaults to 10.  Valid bases are 0 and 2-36.
Base 0 means to interpret the base from the string as an integer literal.
>>> int('0b100', base=0)
4

13. %matplotlib inline

它用于在 Jupyter 笔记本中显示 matplotlib 图形。但是,此命令在旧版本的 Jupyter 笔记本中可用。在新版本中,它不再使用。

14. %hist

此命令返回当前笔记本的历史记录。也就是说,我们到目前为止在当前笔记本中所做的事情。

输出 -

在 IPython 中执行 HTML 脚本

我们可以使用魔术命令来执行 HTML 和 JavaScript 代码。它有助于为我们的代码提供一些简单的 UI 元素。

语法 -

%%html 允许我们执行 HTML 脚本。

%%js 允许我们执行 JS 脚本。

让我们看下面的例子。

命令

Basic Commands in Python

使用环境变量

  • %env

此命令允许我们访问和处理系统环境变量。

输出

{'ALLUSERSPROFILE': 'C:\\ProgramData',
 'APPDATA': 'C:\\Users\\DEVANSH SHARMA\\AppData\\Roaming',
 'C:\\PROGRAMDATA\\ANACONDA3\\SCRIPTS\\': 'C:\\ProgramData\\Anaconda3',
 'C:\\USERS\\DEVANSH SHARMA\\APPDATA\\ROAMING\\NPM': 'C:\\Users\\DEVANSH SHARMA\\AppData\\Roaming\\npm',
 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files',
 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files',
 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files',
 'COMPUTERNAME': 'DESKTOP-2VAN176',
 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe',
 'DART_SDK': 'C:\\Program Files\\Dart\\dart-sdk',
 'DRIVERDATA': 'C:\\Windows\\System32\\Drivers\\DriverData',
 'FPS_BROWSER_APP_PROFILE_STRING': 'Internet Explorer',
 'FPS_BROWSER_USER_PROFILE_STRING': 'Default',
 'HOMEDRIVE': 'C:',
 'HOMEPATH': '\\Users\\DEVANSH SHARMA',
 'LOCALAPPDATA': 'C:\\Users\\DEVANSH SHARMA\\AppData\\Local',
 'LOGONSERVER': '\\\\DESKTOP-2VAN176',
 'NUMBER_OF_PROCESSORS': '4',
 'ONEDRIVE': 'C:\\Users\\DEVANSH SHARMA\\OneDrive',
 'OS': 'Windows_NT',
 'PATH': 'C:\\Users\\DEVANSH SHARMA\\Anaconda3;C:\\Users\\DEVANSH SHARMA\\Anaconda3\\Library\\mingw-w64\\bin;C:\\Users\\DEVANSH SHARMA\\Anaconda3\\Library\\usr\\bin;C:\\Users\\DEVANSH SHARMA\\Anaconda3\\Library\\bin;C:\\Users\\DEVANSH SHARMA..............
  • %env 变量 - 它返回特定变量的值。例如 - %env OS

输出

  • %env 变量 值 - 它用于设置变量 var 的值。

结论

在本教程中,我们涵盖了 Jupyter 笔记本的重要魔术命令。这些命令使工作更加轻松,并提供了高效使用笔记本的灵活性。