科普:%%matplotlib inline:魔法命令 (Cell Magic)

在python程序中你一定用过或见过这样的代码:

python 复制代码
%%matplotlib inline

那么"%%"是什么意思呢?

不是注释,注释是完全被忽略的;
%% 是 Jupyter 识别的「特殊指令标记」,会真正起作用,用来改变整个单元格的运行方式。


一、不是注释

1. 注释 #

python 复制代码
# 这行完全被Python无视,什么都不做
  • 解释器直接跳过
  • 不执行任何操作

2. %%(单元格魔法命令)

举例:

python 复制代码
%%manim -qm HelloCircle
from manim import *
...
  • 不是 Python 代码
  • 是 Jupyter 把单元格内容交给 manim 这个外部工具去执行
  • Jupyter 看到 %% 开头,就知道: 这一整格,不按普通 Python 运行

    而是交给 manim 这个命令去处理

它的真实行为:

  1. 把你单元格里的代码保存成临时 .py 文件

  2. 在后台执行:

    bash 复制代码
    manim -qm 临时文件.py HelloCircle
  3. 把渲染好的视频直接显示在笔记本里


二、单元格魔法命令 (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

相关推荐
05大叔2 小时前
优化器Adam,神经网络处理文本,CNN,RNN
开发语言·python·机器学习
徒 花2 小时前
Python知识学习08
java·python·算法
前端技术3 小时前
ArkTS第三章:声明式UI开发实战
java·前端·人工智能·python·华为·鸿蒙
疯狂成瘾者3 小时前
.pyc格式文件
python
鬼圣3 小时前
Python 生成器与迭代器详解
python
西魏陶渊明3 小时前
解决异步挑战:Reactor Context 实现响应式上下文传递
开发语言·python
疯狂成瘾者3 小时前
增强型大模型代理
python
小李云雾3 小时前
FastAPI 后端开发:文件上传 + 表单提交
开发语言·python·lua·postman·fastapi
Legend NO243 小时前
数据资产评估风险识别、分析与管控体系建设
大数据·人工智能·python