--- title: Python icon: devicon-plain:python createTime: 2025/05/03 21:53:58 permalink: /guide/repl/python/ --- ## 概述 主题提供了 Python 代码演示,支持在线运行 Python 代码。 ## 安装 python 在线执行由 [pyodide](https://pyodide.org/en/latest/) 提供,使用前请确保有 `pyodide` 可用 ::: npm-to ```sh npm install pyodide ``` ::: ## 配置 该功能默认不启用,你可以通过配置来启用它。 ```ts title=".vuepress/config.ts" export default defineUserConfig({ theme: plumeTheme({ markdown: { repl: { python: true, }, }, }) }) ``` ## 使用 使用 `::: python-repl` 容器语法 将 python 代码块包裹起来。主题会检查代码块并添加执行按钮。 ::: warning python-repl 的支持是有限的,目前只支持: - 基本 Python 语法的执行(不依赖后端) - 可导入 Python 基本库 - 标准输出流(stdout)捕获输出 - 最后一条语句是一个表达式(且代码不以分号结尾),则会返回该表达式的值。 - 异常信息输出 ::: ### 只读代码演示 Python 代码演示默认是只读的,不可编辑。 ````md ::: python-repl title="自定义标题" ```python // your python code ``` ::: ```` ### 可编辑代码演示 如果需要在线编辑并执行,需要将代码块包裹在 `::: python-repl editable` 容器语法中。 ````md ::: python-repl editable title="自定义标题" ```python // your python code ``` ::: ```` ## 示例 ### 打印内容 **输入:** ````md ::: python-repl ```python def hello_world(): return 'Hello World!' hello_world() ``` ::: ```` **输出:** ::: python-repl ```python def hello_world(): print('Hello World!') hello_world() ``` ::: ### 运算 ::: python-repl ```python def mul(a: int, b: int) -> int: return a * b print(mul(-2, 4)) ``` ::: ### 可编辑代码演示 **输入:** ````md ::: python-repl editable ```python class Contact: def __init__(self, id: int, email: str): self.id = id self.email = email contact = Contact(1, 'mary@gmail.com') print(contact.id) ``` ::: ```` **输出:** ::: python-repl editable ```python class Contact: def __init__(self, id: int, email: str): self.id = id self.email = email contact = Contact(1, 'mary@gmail.com') print(contact.id) ``` :::