Python字符串格式化:f-string、%、format与Template详解

远山来客
远山来客
发布时间:2026-10-12| 3人浏览过
原创

本文详细介绍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变量,可以实现自定义的字符串模板规则。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。