在Python中,format()
方法用于字符串格式化,它通过{}
和:
来替换以前%
的方式。常见的示例包括基本用法按顺序替换,通过索引替换,通过关键字参数替换,通过字典和列表索引替换,数字格式化(如保留小数、百分比、填充等),对齐文本,使用逗号作为千位分隔符,日期格式化(需要先导入datetime模块)等等。
一、基础替换
顺序替换
print("{} 是 {}".format("Python", "语言")) # Python 是 语言
索引替换
print("{0} 的 {1} {0}".format("Python", "格式化")) # Python 的 格式化 Python
命名替换
print("{lang} 的 {feat}".format(lang="Python", feat="格式化")) # Python 的 格式化
二、数字格式化
保留2位小数
print("π ≈ {:.2f}".format(3.14159)) # π ≈ 3.14
百分比格式
print("占比: {:.1%}".format(0.256)) # 占比: 25.6%
科学计数法
print("距离: {:.2e} 米".format(384400000)) # 距离: 3.84e+08 米
进制转换
print("二进制: {:b}, 十六进制: {:x}".format(42, 255)) # 二进制: 101010, 十六进制: ff
三、文本对齐
左对齐(宽度10)
print("|{:10}|".format("左")) # |左 |
右对齐(宽度10)
print("|{:>10}|".format("右")) # | 右|
居中对齐(宽度10)
print("|{:^10}|".format("中")) # | 中 |
用符号填充
print("|{:^10}|".format("标题")) # |标题|
四、数字格式化增强
千位分隔符
print("人口: {:,}".format(1411778724)) # 人口: 1,411,778,724
带符号显示
print("温度: {:+}°C".format(-5)) # 温度: -5°C
补零填充
print("编号: {:06d}".format(42)) # 编号: 000042
五、高级用法
访问对象属性
class User: def init(self, name): self.name = name print("用户: {u.name}".format(u=User("小明"))) # 用户: 小明
列表索引
data = ["A", "B", "C"] print("第二项: {0[1]}".format(data)) # 第二项: B
日期格式化
from datetime import datetime print("现在: {:%Y-%m-%d %H:%M}".format(datetime.now())) # 现在: 2025-06-16 14:30
六. 嵌套格式化
嵌套字段
print("{:{fill}^{width}}".format("消息", width=20, fill="")) # 消息
动态精度
precision = 3 print("值: {:.{p}f}".format(3.1415926, p=precision)) # 值: 3.142
七、字典解包
info = {"name": "李四", "age": 33} print("姓名: {name}, 年龄: {age}".format(**info)) # 姓名: 李四, 年龄: 33