标签仅语义化标识代码,不执行也不转义;需配合保留格式、html.escape()转义特殊字符、class="python"支持高亮,才能正确展示python代码。

<code> 标签本身不会执行 Python,它只是语义化地表示一段计算机代码——浏览器只会把它当普通文本渲染,带默认等宽字体和无换行。想“展示”Python脚本,关键在「怎么写才清晰、可读、不被误解析」。
为什么 <code> 里写 Python 会出问题
直接把 Python 代码塞进 <code> 标签,容易触发 HTML 解析器误判:
和 <code>>被当成标签起始/结束,比如if x 中的 <code> 可能导致后续内容消失或错位-
&被当成字符实体起始符,name & age会报错或显示异常 - 缩进空格/制表符可能被 HTML 合并,破坏 Python 语法结构
- 没有语法高亮,纯黑白文本对阅读很不友好
正确展示 Python 代码的三步实操
必须同时处理转义、保留格式、增强可读性:
- 用
html.escape()(Python)或手动替换:把→ <code><,>→>,&→& - 包裹在
<pre class="brush:php;toolbar:false;"><code>...</code></pre>中:<pre class="brush:php;toolbar:false;"></pre>保留换行和空格,<code>提供语义 - 加
class="python"属性,方便后续用 Prism.js 或 Highlight.js 自动上色(不加也行,但建议留接口)
示例片段(生成静态 HTML 时):
<pre class="brush:php;toolbar:false;"><code class="python">def greet(name):
if name & name.strip():
print(f"Hello, {name}!")
</code>
用 Python 动态生成带转义的 HTML 代码块
如果你是用 Python 脚本生成 HTML 报告(比如测试结果页),别手写转义 —— 用标准库:
- 导入
html模块:import html - 对原始 Python 字符串调用
html.escape(source_code) - 拼入模板:
f"<pre class="brush:php;toolbar:false;"><code class="python">{escaped}</code></pre>" - 注意:不要用
str.replace()手动替换,容易漏掉"或嵌套实体
PyScript 场景下别混用 <code> 和 <py-script></py-script>
有人把 <py-script></py-script> 里的代码,再用 <code> 套一遍想“既展示又执行”,这是错的:
-
<py-script></py-script>是 PyScript 框架自定义标签,用于执行;<code>是原生 HTML 标签,仅用于展示 - 嵌套会导致执行失败或双重转义,比如
<py-script><code>print(1)中的<code>会被当作普通文本输出,而非执行 - 要同时展示+执行,得分开两块:
<pre class="brush:php;toolbar:false;"><code>print(1)</code></pre>(展示) +<py-script>print(1)</py-script>(执行)
<code> 不负责转义,也不负责格式,它只负责说“这段是代码”**。所有安全性和可读性工作,得由你主动补全——否则用户看到的很可能是一片空白、乱码,或者根本跑不起来的“假代码”。Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











