模板字符串与 str.format
其他格式化工具
模板字符串与 str.format 是 CoddyKit 上的免费 Python Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 4 节课。
其他格式化工具
除了 f 字符串,Python 还提供另外两种格式化工具:str.format() 方法和 string.Template 类。每种工具都适用于不同场景。
print('Hello, {}!'.format('World'))str.format 基础
str.format() 会按顺序使用参数替换 {} 占位符。它早于 f 字符串出现,至今仍出现在大量代码中。
msg = '{} is {} years old'.format('Ada', 36)
print(msg)位置索引
在大括号中放入数字,即可根据位置重复使用或重新排列参数。
print('{0} {1} {0}'.format('echo', 'once'))命名占位符
在大括号中使用名称,并传入关键字参数。这样可以让模板自我说明。
print('{name} scored {score}'.format(name='Lin', score=95))格式说明符仍然适用
相同的迷你语言也可以放在 str.format 的冒号之后,因此您可以控制宽度、精度和对齐方式。
print('{:.2f}'.format(3.14159))
print('{:>8}'.format('hi'))从字典进行格式化
使用 ** 将字典解包到 str.format 中,以填充命名占位符。
data = {'city': 'Rome', 'temp': 27}
print('{city}: {temp} C'.format(**data))介绍模板字符串
string.Template 使用基于 $ 的占位符。它有意保持简单,对于用户提供的模板也更安全,因为它无法运行任意表达式。
from string import Template
t = Template('Hello, $name!')
print(t.substitute(name='World'))使用大括号提高可读性
当占位符名称紧邻其他文本时,请将其包在大括号中,例如 ${name}。
from string import Template
t = Template('${item}s cost $$5')
print(t.substitute(item='apple'))safe_substitute
缺少名称时,substitute 会引发 KeyError。而 safe_substitute 会让未知占位符保持原样。
from string import Template
t = Template('$greeting, $name')
print(t.safe_substitute(greeting='Hi'))何时使用哪一种
建议:日常代码优先使用f 字符串。当模板与数据分离时使用 str.format。对于不受信任的用户提供模板,使用模板。
name = 'Sam'
print(f'f-string: {name}')
print('format: {}'.format(name))来自外部文本的模板
由于模板文本只是一个字符串,您可以从配置文件或数据库中加载它,然后在运行时替换值。
from string import Template
stored = 'Order $id ships to $city'
t = Template(stored)
print(t.substitute(id=7, city='Oslo'))快速检查
对于替换由不受信任的用户提供的模板中的值,哪种工具最安全?
回顾:模板字符串与 str.format
以下是 f 字符串的替代方案:
str.format()使用{}占位符,支持位置参数、命名参数以及完整的格式规范。string.Template使用$name占位符,适合处理不受信任的输入。safe_substitute会保留未知占位符。- 对于普通代码,优先使用 f 字符串;当模板来自外部来源或不受信任时,再使用这些工具。
from string import Template
print(Template('Bye, $who').substitute(who='all'))
print('Done: {}'.format(True))常见问题解答
「模板字符串与 str.format」课时是免费的吗?
是的 — 「模板字符串与 str.format」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 4 节课。
「模板字符串与 str.format」这节课中我会学到什么?
其他格式化工具 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Python Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「模板字符串与 str.format」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Python Academy 课中编写并运行代码吗?
能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- f-string 表达式
- 格式说明符
- 格式微语言
- 模板字符串与 str.format