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 | 忘记之前定义了什么变量,快速列出 |
%reset | Notebook 跑乱了,一键清空重来 |
%pwd | 不确定当前目录,查一下 |
%timeit | 验证不同写法的性能差异 |
小结
Magic Command 是 Notebook 的「瑞士军刀」——虽然不是必须的,但在需要时能帮你省很多功夫。移动端推荐至少记住 %who、%reset、%timeit 这三个最实用的。如果 %magic 能跑,就说明当前 QNotebook 版本的魔法命令支持是完好的。
接下来进入 PIP 包管理部分,了解 QPython 如何安装第三方库。