在 Python 中,格式化字符串有多种方法。以下是常用的三种字符串格式化方法:
%
运算符将值替换到字符串中。name = "王大哥"
age = 30
# 使用百分号格式化
message = "我叫%s,我今年%d岁了." % (name, age)
print(message)
# 输出: "我叫王大哥,我今年30岁了."
在 %
后面的字符表示要格式化的值的类型:s
表示字符串,d
表示整数,f
表示浮点数等。
str.format()
方法:这是一种更灵活的字符串格式化方法,通过在字符串中使用大括号 {}
作为占位符,并使用 format()
方法将值替换到字符串中。name = "王刚"
age = 30
# 使用 str.format() 方法格式化
message = "我叫{},我今年{}岁了.".format(name, age)
print(message)
# 输出: "我叫王刚,我今年30岁了."
可以在大括号内指定占位符的位置,如 {0}
表示第一个值,{1}
表示第二个值,以此类推。还可以通过关键字参数进行格式化。
f
或 F
,然后在字符串中使用大括号 {}
并在其中直接使用变量名或表达式。name = "李斯"
age = 30
# 使用 f-string 格式化
message = f"我叫{name},今年{age}岁了."
print(message)
# 输出: "我叫李斯,今年30岁了."
f-string 允许在大括号内使用表达式和函数调用等。
这三种方法都能有效地格式化字符串,你可以根据个人偏好和需求选择其中一种来进行字符串的格式化。在实际使用中,f-string 通常被认为是最简洁和易读的字符串格式化方法。
Python 中提供了 string.Template
类,用于支持模板字符串的格式化。这种方法可以通过指定占位符来替换字符串中的值。
以下是使用 string.Template
的例子:
from string import Template
# 创建一个模板字符串
template_string = "你好, $name! 你已经$age岁了."
# 创建 Template 对象
template = Template(template_string)
# 使用 substitute() 方法进行格式化
formatted_string = template.substitute(name="爱丽丝", age=30)
print(formatted_string)
# 输出: "你好, 爱丽丝! 你已经30岁了."
在上面的例子中,我们创建了一个模板字符串,并使用 $name
和 $age
作为占位符。然后通过 substitute()
方法传入字典形式的参数,将占位符替换为相应的值,生成最终的格式化字符串。
除了使用 substitute()
方法,还可以使用 safe_substitute()
方法进行格式化。safe_substitute()
方法与 substitute()
方法的功能相同,但是如果在字典中找不到对应的键值,它不会引发 KeyError
,而是保留占位符不进行替换。
from string import Template
# 创建一个模板字符串
template_string = "你好, $name! 你已经$age岁."
# 创建 Template 对象
template = Template(template_string)
# 使用 safe_substitute() 方法进行格式化
formatted_string = template.safe_substitute(name="李刚")
print(formatted_string)
# 输出: "你好, 李刚! 你已经$age岁."
这种模板字符串的格式化方法比较灵活,可以根据需要动态地生成格式化字符串。在一些动态生成文本或模板化输出的场景中,使用 string.Template
类是非常方便的。