在Python中,字符串的格式化非常重要,尤其是在生成动态内容时。格式化可以通过多种方式实现,其中最常用的方法是使用 str.format()
、f-strings(格式化字符串字面量)以及旧式的 %
格式化。以下是对这些方法的详细介绍,包括数字的格式化操作。
1. 使用 str.format()
方法
str.format()
方法提供了一种灵活的方式来格式化字符串。可以通过大括号 {}
来指定占位符,并在其后使用 format()
方法传入参数。支持多种类型的格式化,包括数字格式。
示例代码
# 使用 str.format() 进行字符串格式化
name = "Alice"
age = 30
height = 5.5# 基本格式化
formatted_string = "Name: {}, Age: {}, Height: {}".format(name, age, height)
print(formatted_string)# 数字格式化:设置宽度和小数位
number = 123.456789
formatted_number = "Formatted number: {:.2f}".format(number) # 保留2位小数
print(formatted_number)# 数字带千位分隔符
large_number = 1234567890
formatted_large_number = "Large number: {:,.2f}".format(large_number) # 每千位用逗号分隔,保留两位小数
print(formatted_large_number)
输出结果
Name: Alice, Age: 30, Height: 5.5
Formatted number: 123.46
Large number: 1,234,567,890.00
2. 使用 f-strings(Python 3.6+)
f-strings 是 Python 3.6 及以上版本引入的一种更简洁的格式化方法。通过在字符串前加上 f
,可以直接在大括号中插入变量,同时支持格式化操作。
示例代码
# 使用 f-strings 进行字符串格式化
name = "Bob"
age = 25
height = 6.1# 基本格式化
formatted_string = f"Name: {name}, Age: {age}, Height: {height}"
print(formatted_string)# 数字格式化
number = 987.654321
formatted_number = f"Formatted number: {number:.3f}" # 保留3位小数
print(formatted_number)# 数字带千位分隔符
large_number = 9876543210
formatted_large_number = f"Large number: {large_number:,}" # 每千位用逗号分隔
print(formatted_large_number)
输出结果
Name: Bob, Age: 25, Height: 6.1
Formatted number: 987.654
Large number: 9,876,543,210
3. 使用 %
格式化(旧式)
虽然不推荐使用,但 %
格式化仍然在一些老旧代码中常见。使用 %
来指定格式,后面跟上一个元组。
示例代码
# 使用 % 进行字符串格式化
name = "Charlie"
age = 28
height = 5.9# 基本格式化
formatted_string = "Name: %s, Age: %d, Height: %.1f" % (name, age, height)
print(formatted_string)# 数字格式化
number = 456.789012
formatted_number = "Formatted number: %.4f" % number # 保留4位小数
print(formatted_number)# 数字带千位分隔符(Python 3.6+)
large_number = 4567890123
formatted_large_number = "Large number: {:,}".format(large_number) # 旧式方法不支持千位分隔符,使用format代替
print(f"Large number: {large_number:,}")
输出结果
Name: Charlie, Age: 28, Height: 5.9
Formatted number: 456.7890
Large number: 4,567,890,123
4. 数字格式化操作总结
在Python中,数字格式化的主要操作包括:
- 保留小数位:使用
:.nf
,其中 n
是小数位数。 - 千位分隔符:使用
:,
,可以与小数位同时使用,如 {:,.2f}
。 - 补零:使用
:0n
,其中 n
是总长度(包括小数点)。 - 百分比格式:使用
:.2%
可以将数字转换为百分比格式。
示例代码
# 数字格式化操作示例
number1 = 0.12345
number2 = 1000# 百分比格式化
percent_format = f"Percentage: {number1:.2%}" # 转为百分比,保留两位小数
print(percent_format)# 补零格式化
zero_filled = f"Zero filled: {number2:05d}" # 总长度为5,前面补零
print(zero_filled)
输出结果
Percentage: 12.35%
Zero filled: 01000