Python字符串格式化:f-string、%、format与Template详解
本文详细介绍Python中四种常用的字符串格式化方式:f-string、%操作符、format方法以及string.Template类。重点解析f-string的语法特性、花括号转义规则,以及Template类中substitute与safe_substitute的区别、参数优先级及自定义模板的实现方法,帮助开发者根据场景选择最佳方案。
第一种格式化方式:使用f-string(f"")
具体使用示例如下所示:
# -*- coding: utf-8 -*-
# @Time : 2020/4/22 22:35
# @Author : chinablue
# 替换变量
name = "chinablue"
# 格式化字符串
res_str = f"hello {name}"
print(res_str)
使用时需注意以下事项:
- 除了f-string,%操作符和format方法同样是Python中广泛使用的字符串格式化手段;
- 若需在格式化字符串中显示大括号{},需使用双大括号{{}}进行转义处理。
第二种格式化方式:使用string.Template类
具体使用示例如下所示:
# -*- coding: utf-8 -*-
# @Time : 2020/4/22 22:35
# @Author : chinablue
import string
# 字典中的key为变量
d = {
"name" : "chinablue"
}
# 替换字符串可以写成 $name 或 ${name}; 默认的定界符为$
s = string.Template("hello ${name}")
# 执行字符串替换,
res_str = s.substitute(d)
print(res_str)
使用时需注意以下事项:
- 当占位符采用${}格式时,变量名与花括号之间不允许存在空格;
- 调用string.substitute()时,若字符串中定义了占位符但未提供对应的参数值,程序将抛出KeyError异常;
- string.substitute()方法的参数既可以是字典,也可以是关键字参数。若同时提供字典和关键字参数,且存在重复的键名,则关键字参数的取值具有更高优先级;
- 调用string.safe_substitute()时,若字符串中定义了占位符但未提供对应的参数值,程序不会抛出异常,而是保留原始占位符文本;
- 通过继承string.Template类并重写delimiter变量和idpattern变量,可以实现自定义的字符串模板规则。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













