Python 字符串格式化详解
在 Python 开发中,字符串拼接是高频操作。虽然直接用 + 号能实现拼接,但可读性和维护性往往不如使用占位符。比如:
name = "Li hua"
age = 24
print("Hello " + name + ", you are " + str(age) + " years old")
换成占位符写法会更清晰:
name = "Li hua"
age = 24
print("Hello %s, you are %d years old" % (name, age))
这里 %s、%d 就是占位符,它们的作用是让后面的变量值替换掉前面的位置。对比两种写法,使用占位符的好处很明显:变量集中管理方便修改,避免了引号嵌套导致的识别困难,句子结构也更通顺。
目前 Python 主要有三种格式化方式:% 操作符、.format() 方法和 f-string(f 表达式)。下面依次展开讲讲它们的用法和注意事项。
1. % 操作符
% 是最早的格式化方式,语法类似 C 语言的 printf。基本格式如下:
"... %[key][flags][width][.precision][length type]conversion type ..." % values
其中 conversion type 是必须的,决定了数据如何显示。常用的类型有:
| 类型 | 说明 |
|---|---|
s | 字符串(调用 str()) |
d | 十进制整数 |
f | 浮点数(默认保留 6 位小数) |
示例:
print("%s %s %s" % ("hello", 3, 3.1415))
# hello 3 3.1415
print("%s %d %f" % ("hello", 3, ))


