科普:%%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

相关推荐
2501_9378609421 分钟前
Java 文件操作与IO(下):字节流、字符流实战IO读写
java·开发语言·python
E_ICEBLUE36 分钟前
为 Excel 工作簿和工作表设置密码保护【Python教程】
python·excel
Sylvia33.4 小时前
LOL实时数据接入深度解析:从WebSocket到完整数据模型
java·网络·python·websocket·网络协议
梦想不只是梦与想4 小时前
Web 服务器网关协议:ASGI 和 WSGI
服务器·python·fastapi
ai小陈6 小时前
PyTorch DataLoader数据加载性能排查:GPU利用率低的实操指南
人工智能·pytorch·python·深度学习·ai·gpu算力
2601_962299249 小时前
Azure python操作系统列表
python·操作系统·azure·虚拟机·存储配置文件
学术 学术 Fun10 小时前
如何用 API 与 Webhook 批量把图表图片转换成 VSDX
python·自动化·api·visio
2601_9621005411 小时前
python包和模块的内容整理
python·模块·导入·虚拟环境·
二进制漫游记11 小时前
FastAPI项目集成 Qdrant向量数据库+阿里云Embedding完整实战(工具封装+业务调用)
数据库·python·阿里云·embedding
-今昭-12 小时前
《V2V 迁移实战:将 VMware 虚拟机转为 OpenStack 可用 Glance qcow2 镜像》
开发语言·python