目录:
- 使用百分号(%)格式化字符串
- 使用 format()格式化字符串
- 使用 f-string 格式化字符串
- 使用 string.Template 格式化字符串
- 使用 center() 格式化字符串
- Python 字符串格式化方法的比较
在本文中介绍不同的方法进行字符串格式化输出。包括百分号(%)、format() 函数、f-strings、center()和 string.Template,以帮助你选择最适合你需求的方法。
使用百分号(%)格式化字符串
百分号(%)是 Python 中用于字符串格式设置的传统方法。它的工作原理是将字符串中的占位符替换为元组中的值。
如果只需要进行一些基本的字符串更改,使用百分号(%)很方便。
name = "李明"
age = 13
formatted_string = "我是%s,我今年%d岁了。" %(name, age)
print(formatted_string)
# 输出:我是李明,我今年13岁了。
请注意,需要使用特定类型的字符后缀,以指示要输出的数据类型,表示是要替换的字符串是数字还是字符串。如果未指定类型,Python 将抛出 TypeError。
转换说明符 | 描述 |
---|---|
s | 字符串 |
d | 整数 |
f | 浮点数 |
使用 format()格式化字符串
str.format() 方法将占位符替换为值,是一种灵活的字符串格式设置方法。此方法在 Python 2 和 Python 3 中都可使用,使其成为需要代码与两个版本兼容的不错选择。
在字符串中,可以使用大括号定义占位符。然后在字符串上调用该方法,并提供参数作为替换占位符的值。
name = "李明"
age = 13
formatted_string = "我是{},我今年{}岁了。" .format(name, age)
print(formatted_string)
# 输出:我是李明,我今年13岁了。
使用 f-string 格式化字符串
f-strings 是 Python 中最新的字符串格式化方法。首先出现在 Python 3.6 中,是格式化字符串最简洁、最易读的方式。
f-string 的工作原理是将表达式嵌入大括号 {} 中,并在运行时计算表达式并将其插入到字符串中。
name = "李明"
age = 13
formatted_string = f"我是{name},我今年{age}岁了。"
print(formatted_string)
# 输出:我是李明,我今年13岁了。
使用 string.Template 格式化字符串
在 Python string.Template 模块中提供了一种安全且可扩展的方法来执行字符串替换。可用于创建频繁重复出现的动态字符串,例如生成 HTML 页面或电子邮件。
为了使用 string.Template,首先需要创建一个模板字符串。同时,必须使用美元符号($)指定占位符。
from string import Template
name = "李明"
age = 13
template = Template("我是$name,我今年$age岁了。")
formatted_string = template.substitute(name=name, age=age)
print(formatted_string)
# 输出:我是李明,我今年13岁了。
使用 center() 格式化字符串
该方法用于在给定宽度内对字符串进行居中对齐。虽然它不是传统的字符串格式设置方法,但当需要以特定方式对齐文本时,它会很有用。
在字符串上调用该方法,将所需的宽度作为参数传递。该方法将在字符串上填充空格,使其在指定的宽度内居中。
例如,以下代码将字符串“Hello,world!”居中,宽度为 20。
text = "Hello, world!"
print(text.center(20))
# 输出: Hello, world!
Python 字符串格式化方法的比较
方法 | 描述 | 优势 | 不足 |
---|---|---|---|
% | Python 中最古老的字符串格式化方法。 | 简单明了。适合 C 或 C++ 背景的开发人员。可用于 Python 2 和 Python 3。 | 不是很强大、灵活。 |
format() | Python 中一种较新的字符串格式设置方法。 | 比 % 更强大、更灵活。兼容 Python 2 和 Python 3。 | 可能很复杂。 |
f-string | Python 中最新的字符串格式化方法。 | 最简洁易读的字符串格式。 | 在旧版本的 Python 中不受支持。 |
Template | 允许创建带有占位符的模板字符串,这些占位符可以替换为实际值。 | 对于创建重复使用的动态字符串很有用。 | 可能很复杂。 |
center() | 将字符串居中,使其在给定宽度内居中。 | 可用于设置显示字符串的格式。 | 仅格式化单个字符串。 |