Python format() 方法详解:灵活通用的字符串格式化方案
在 Python 开发中,format() 方法自 2.6 版本引入以来,一直是字符串格式化的核心工具。它既解决了旧式 %-formatting 类型匹配繁琐的问题,又比 f-string 拥有更广泛的版本兼容性。凭借'占位符 {}+ 参数映射'的灵活逻辑,它在复杂场景与跨版本项目中依然是首选。下面我们来深入拆解它的用法、技巧以及需要注意的细节。
核心语法基础
format() 的核心在于用 {} 定义占位符,再通过参数赋值。支持位置、关键字、索引等多种匹配方式。
1. 三大核心匹配方式
位置参数匹配
占位符没有明确标识,按传入顺序依次匹配。如果只保留 {},可以省略内容,适合参数少且固定的场景。
print("姓名:{},年龄:{}".format("Bob", 30))
# 输出:姓名:Bob,年龄:30
也可以指定索引来打乱顺序或重复使用:
print("第 1 个:{0},第 2 个:{1},再用第 1 个:{0}".format("Apple", 100))
# 输出:第 1 个:Apple,第 2 个:100,再用第 1 个:Apple
关键字参数匹配
占位符指定关键字,无需关注顺序,可读性更强。配合字典解包 ** 使用非常方便。
print("姓名:{name},年龄:{age}".format(name="Charlie", age=28))
# 输出:姓名:Charlie,年龄:28
user = {"name": "David", "city": "Shanghai"}
print("姓名:{name},城市:{city}".format(**user))
# 输出:姓名:David,城市:Shanghai
对象属性与字典键匹配
可以直接访问对象的属性或字典的键,不用手动提取值。
class Student:
def __init__(self, name, score):
.name = name
.score = score
stu = Student(, )
(.(s=stu))

