在python程序中你一定用过或见过这样的代码:
python
%%matplotlib inline
那么"%%"是什么意思呢?
不是注释,注释是完全被忽略的;
%% 是 Jupyter 识别的「特殊指令标记」,会真正起作用,用来改变整个单元格的运行方式。
一、不是注释
1. 注释 #
python
# 这行完全被Python无视,什么都不做
- 解释器直接跳过
- 不执行任何操作
2. %%(单元格魔法命令)
举例:
python
%%manim -qm HelloCircle
from manim import *
...
- 不是 Python 代码
- 是 Jupyter 把单元格内容交给 manim 这个外部工具去执行
- Jupyter 看到
%%开头,就知道: 这一整格,不按普通 Python 运行而是交给
manim这个命令去处理
它的真实行为:
-
把你单元格里的代码保存成临时
.py文件 -
在后台执行:
bashmanim -qm 临时文件.py HelloCircle -
把渲染好的视频直接显示在笔记本里
二、单元格魔法命令 (Cell Magic)
1. 定义
以 %% 开头的命令 = Jupyter 专用 → 控制「整个单元格」怎么运行
2. 特点
- 必须写在单元格的第一行
- 以
%%开头 ,控制整个单元格 - 不是 Python 代码
- 不是注释,告诉 Jupyter:别按普通Python运行,按特殊方式运行
三、最常用的「单元格魔法命令」举例
1)%%time ------ 测代码运行时间
python
%%time
a = [i for i in range(1000000)]
2)%%bash ------ 在单元格里运行 Linux 命令
python
%%bash
ls
pwd
echo hello
3)%%html ------ 直接渲染网页
python
%%html
<h1>Hello World</h1>
4)%%javascript ------ 运行JS
python
%%javascript
alert("hello")
5)%%manim ------ 渲染Manim动画
python
%%manim -qm HelloCircle
from manim import *
class HelloCircle(Scene):
def construct(self):
self.add(Circle())
6)matplotlib 画图(你用过或见过的)
python
%%matplotlib inline
import matplotlib.pyplot as plt
plt.plot([1,2,3])
四、单元格魔法命令 = Jupyter 专用
%% 开头,是 Jupyter 魔法,不是Python代码!
只在「Jupyter 笔记本环境」生效,普通 Python/终端 完全无效!
1. %% 魔法命令 在 VS Code 中:一半有效,一半无效!
只有当你在 VS Code 里打开 .ipynb 笔记本文件时
%%manim、%%time、%%matplotlib 才会生效!
❌ 完全无效:
- 普通
.py文件 - VS Code 终端(CMD/PowerShell)
- 直接运行 Python 程序
在普通 .py 里写 %%manim 会直接报错!
2. 哪些编辑器 / 环境 支持 %% 魔法命令?
✅ 完全支持
- Jupyter Notebook(原版)
- Jupyter Lab
- VS Code(打开 .ipynb 文件时)
- Google Colab
- Kaggle Notebook
- 所有支持 Jupyter 内核的在线笔记本
❌ 完全不支持
- PyCharm(普通模式)
- IDLE
- Sublime Text
- Vim / NeoVim
- CMD / PowerShell / Bash
- 任何直接运行
.py的环境
3. 只需记住
.ipynb 笔记本文件 → 支持 %%
.py 普通文件 → 不支持 %%
五、%%` 是 Jupyter 的命令,不是 Python 的
** 单元格魔法命令不是 Python 专属,其他语言也能用!**
它本质是 Jupyter 笔记本的功能 ,和语言无关,
作用是:指定当前单元格用什么语言/工具来运行。
- 可以用来切换 任意编程语言
- 也可以用来运行 系统工具、外部程序(如 manim)
其他语言的单元格魔法举例
① 运行 C++
python
%%cxx
#include <iostream>
using namespace std;
int main() {
cout << "Hello C++" << endl;
}
② 运行 R 语言
python
%%R
rnorm(100)
③ 运行 HTML
python
%%html
<div style="color:red">我是红色文字</div>
④ 运行 JavaScript
python
%%javascript
console.log("hello js")
⑤ 运行终端命令(Linux/macOS)
python
%%bash
ls -l
pwd
⑥ 运行 PowerShell(Windows)
python
%%powershell
Get-ChildItem
六、Jupyter 只有 2 种 魔法命令
1. %% 开头 = 单元格魔法 (Cell Magic)
作用于整个单元格 ,必须写在第一行。
python
%%time
%%bash
%%html
%%manim
%%python3
2. % 开头 = 行魔法 (Line Magic)
只作用于当前一行 ,可以写在任意位置。
python
%time
%pwd
%ls
%cd
%run
| 符号 | 名字 | 作用范围 | 位置 |
|---|---|---|---|
| % | 行魔法 | 一行 | 任意位置 |
| %% | 单元格魔法 | 整个单元格 | 必须第一行 |
3.最常用 行魔法 %(超级实用)
前面举了单元格魔法命令的例子,这里再举一些行魔法命令的例子。
这些你在画图、运行文件、切换路径时,可以 天天用!
%cd --- 切换文件夹(最常用)
python
%cd C:/manim_projects
%pwd --- 查看当前工作目录
python
%pwd
%ls / %dir --- 查看文件列表
python
%ls
%run --- 运行外部 .py 文件
python
%run my_script.py
%time --- 测试一行代码的运行时间
python
%time sum(range(1000000))
%matplotlib inline --- matplotlib 画图显示
python
%matplotlib inline
%whos --- 查看所有变量
python
%whos
%clear --- 清屏
python
%clear