Python 中的 format()
方法用于格式化字符串,功能非常强大、灵活,适合生成带变量的动态字符串。下面是 format()
的详细用法和实例讲解。
1. 基本语法
"模板字符串 {位置/名称}".format(参数)
- 花括号
{}
是占位符,format()
方法会将参数填入对应的占位符中。 - 参数可以按位置或按名称进行引用。
2. 按位置填充
# 基本位置填充
print("我叫 {},今年 {} 岁".format("Alice", 25))
输出:
我叫 Alice,今年 25 岁
说明:
{}
默认按顺序填充。如果有多个占位符,按参数顺序对应。
显式位置索引
print("{1} 是 {0} 的朋友".format("Alice", "Bob"))
输出:
Bob 是 Alice 的朋友
这里使用
1
来指定第二个参数填入。
3. 按名称填充
print("我是 {name}, 来自 {city}".format(name="Alice", city="Shanghai"))
输出:
我是 Alice, 来自 Shanghai
{}
中直接写参数名称,通过关键字参数传值。
4. 混合使用位置和名称
print("编号 {0} 是 {name}".format(101, name="Alice"))
输出:
编号 101 是 Alice
5. 格式化数值
format()
支持对数值进行格式化,如设置小数位数、对齐方式、百分比等。
5.1 保留小数位
pi = 3.14159265
print("圆周率保留两位小数: {:.2f}".format(pi))
输出:
圆周率保留两位小数: 3.14
:.2f
表示保留两位小数,f
表示浮点数。
5.2 转为百分比
score = 0.856
print("得分: {:.1%}".format(score))
输出:
得分: 85.6%
5.3 数字千分位
money = 1234567890
print("金额: {:,}".format(money))
输出:
金额: 1,234,567,890
6. 对齐方式
<
左对齐^
居中对齐>
右对齐
实例
print("|{:<10}|{:^10}|{:>10}|".format("左对齐", "居中", "右对齐"))
输出:
|左对齐 | 居中 | 右对齐|
7. 填充字符
print("{:*^20}".format("标题"))
输出:
********标题********
使用
*
作为填充字符,居中对齐,总宽度为 20。
8. 进制转换
print("二进制: {:b}, 八进制: {:o}, 十六进制: {:x}".format(255, 255, 255))
输出:
二进制: 11111111, 八进制: 377, 十六进制: ff
9. 转义大括号
如果需要输出大括号 {}
,可以使用双大括号 {{}}
。
print("大括号示例: {{}}".format())
输出:
大括号示例: {}
10. f-string 和 format() 的比较
Python 3.6 引入了更简洁的 f-string 格式化方式:
name = "Alice"
age = 25
print(f"我叫 {name},今年 {age} 岁")
推荐使用 f-string:
- 更简洁,性能更好
- 但是
format()
在需要复杂格式时仍然非常实用。
总结
format()
方法功能强大,几乎可以满足所有字符串格式化需求,包括:
- 位置与命名参数填充
- 数值格式化(小数位、千分位、百分比等)
- 对齐与填充字符
- 进制转换等