Python基础:格式化字符串的方法(三种常用的,一种使用模板来格式化字符串的)

一、基础的格式化字符串方法

在 Python 中,格式化字符串有多种方法。以下是常用的三种字符串格式化方法:

  1. 使用百分号(%)格式化:这是一种传统的字符串格式化方法,在字符串中使用百分号(%)作为占位符,然后通过 % 运算符将值替换到字符串中。
name = "王大哥"
age = 30

# 使用百分号格式化
message = "我叫%s,我今年%d岁了." % (name, age)
print(message)
# 输出: "我叫王大哥,我今年30岁了."

% 后面的字符表示要格式化的值的类型:s 表示字符串,d 表示整数,f 表示浮点数等。

  1. 使用 str.format() 方法:这是一种更灵活的字符串格式化方法,通过在字符串中使用大括号 {} 作为占位符,并使用 format() 方法将值替换到字符串中。
name = "王刚"
age = 30

# 使用 str.format() 方法格式化
message = "我叫{},我今年{}岁了.".format(name, age)
print(message)
# 输出: "我叫王刚,我今年30岁了."

可以在大括号内指定占位符的位置,如 {0} 表示第一个值,{1} 表示第二个值,以此类推。还可以通过关键字参数进行格式化。

  1. 使用 f-string(格式化字符串字面值):这是从 Python 3.6 版本开始引入的新的字符串格式化方法,使用 f-string 可以在字符串前加上 fF,然后在字符串中使用大括号 {} 并在其中直接使用变量名或表达式。
name = "李斯"
age = 30

# 使用 f-string 格式化
message = f"我叫{name},今年{age}岁了."
print(message)
# 输出: "我叫李斯,今年30岁了."

f-string 允许在大括号内使用表达式和函数调用等。

这三种方法都能有效地格式化字符串,你可以根据个人偏好和需求选择其中一种来进行字符串的格式化。在实际使用中,f-string 通常被认为是最简洁和易读的字符串格式化方法。

二、高级的格式化字符串方法

  1. 使用模板来进行字符串格式化

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 类是非常方便的。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值