QPython 中文文档 下载 App

Notebook Magic Command——Notebook 特有的快捷命令

什么是 Magic Command

Magic Command(魔法命令)是 Jupyter Notebook 提供的一组内置快捷命令,以 % 或 %% 开头。它们不是标准 Python 语法,而是 Notebook Kernel 提供的便捷功能,用来快速完成一些常见操作——计时、重装模块、列出变量、执行 shell 命令等。

QNotebook 基于 Jupyter 标准实现,应该支持大部分 Magic Command。具体支持程度以实际版本为准。

常用行级魔法命令

行级命令只作用于当前这一行代码(命令本身占一行)。

%timeit —— 计时

测量一行代码的执行时间,自动跑多次取平均值:

%timeit sum(range(10000))
# 输出类似:1000 loops, best of 5: 382 µs per loop

适合对比不同算法的性能。

%time —— 单次计时

只测一次执行时间,比 %timeit 简单:

%time data = [i**2 for i in range(100000)]

%pwd —— 当前工作目录

Print Working Directory,和 import os; os.getcwd() 效果一样但更短。

%ls —— 列出文件

列出当前目录下的文件,效果类似 shell 的 ls 命令。

%who —— 列出当前变量

查看当前 Notebook 运行时里有哪些变量:

%who
# 输出类似:data x np result

%who_ls —— 变量列表

%who 的精简列表版,只输出变量名。

%reset —— 清空变量

清空当前 Notebook 的所有变量和导入,让运行时回到初始状态。

%run —— 运行脚本

在当前 Notebook 运行时里运行一个外部 .py 文件:

%run my_script.py

执行完后,脚本里定义的变量和函数可以继续在 Notebook 里使用。

%load —— 加载文件

把外部文件的内容加载到当前 Cell 里(以注释形式显示来源)。

%paste —— 粘贴剪贴板

从系统剪贴板粘贴代码到当前 Cell(桌面端常用,移动端可能不常用)。

单元级魔法命令

单元级命令以 %% 开头,作用于整个 Cell 的所有行。

%%timeit —— Cell 计时

测量整个 Cell 的执行时间:

%%timeit
data = []
for i in range(10000):
    data.append(i**2)

%%bash / %%sh —— 执行 shell 命令

让当前 Cell 的内容作为 shell 命令执行:

%%bash
ls -la
echo "Hello from shell"

QNotebook 在 Android 上的 shell 支持取决于 QPython 的具体实现。

查看所有魔法命令

输入 %magic 会显示所有可用的魔法命令列表和简要说明。输入 %lsmagic 只列出命令名。

移动端的实用建议

在手机上用 QNotebook 时,以下几个魔法命令特别有用:

魔法命令场景
%who忘记之前定义了什么变量,快速列出
%resetNotebook 跑乱了,一键清空重来
%pwd不确定当前目录,查一下
%timeit验证不同写法的性能差异

小结

Magic Command 是 Notebook 的「瑞士军刀」——虽然不是必须的,但在需要时能帮你省很多功夫。移动端推荐至少记住 %who、%reset、%timeit 这三个最实用的。如果 %magic 能跑,就说明当前 QNotebook 版本的魔法命令支持是完好的。

接下来进入 PIP 包管理部分,了解 QPython 如何安装第三方库。