Python 中的格式化操作主要有以下几种方式:
- 1. 百分号 `%` 格式化
- 常用格式符号
- 2. `str.format()` 方法
- 3. f-string 格式化(Python 3.6+)
- f-string 进阶用法
1. 百分号 %
格式化
百分号格式化在 Python 中最早被用来格式化字符串,类似于 C 语言中的 printf
。它用 %
操作符来表示格式符,后面接一个需要被格式化的数据。
常用格式符号
%d
:整数(int
)%f
:浮点数(float
)%s
:字符串(str
)%x
:十六进制整数
name = "Alice"
age = 25
height = 5.8
print("Name: %s, Age: %d, Height: %.2f" % (name, age, height))
输出:
Name: Alice, Age: 25, Height: 5.80
%.2f
:将变量height
格式化为浮点数,保留两位小数。
2. str.format()
方法
str.format()
是 Python 3 中引入的一种更灵活的字符串格式化方式。它通过 {}
占位符来进行替换。
{}
:默认格式,直接替换。{:<N}
:左对齐,占位符宽度为N
。{:>N}
:右对齐,占位符宽度为N
。{:^N}
:居中对齐,占位符宽度为N
。{:.Nf}
:保留N
位小数。{:,}
:使用逗号作为千位分隔符。
name = "Bob"
age = 30
salary = 12345.6789
print("Name: {}, Age: {}, Salary: {:.2f}".format(name, age, salary))
print("Formatted salary with commas: {:,}".format(salary))
输出:
Name: Bob, Age: 30, Salary: 12345.68
Formatted salary with commas: 12,345.6789
{:,.2f}
:将salary
格式化为带有千位分隔符且保留两位小数。
3. f-string 格式化(Python 3.6+)
f-string 是 Python 3.6 引入的一种更简洁、直观的字符串格式化方式,使用前缀 f
并将变量直接写在 {}
中。
name = "Charlie"
age = 28
height = 6.1
print(f"Name: {name}, Age: {age}, Height: {height:.2f}")
输出:
Name: Charlie, Age: 28, Height: 6.10
- 通过在字符串前面加上
f
,可以直接在{}
中引用变量。 {height:.2f}
:将height
保留两位小数进行格式化。
f-string 进阶用法
- 可以在 f-string 中执行任意的表达式:
a = 5
b = 10
print(f"Sum of a and b: {a + b}")
输出:
Sum of a and b: 15
- 使用字典进行格式化:
person = {"name": "David", "age": 35}
print(f"Name: {person['name']}, Age: {person['age']}")
输出:
Name: David, Age: 35