Python高效字符串格式化:f-strings的魅力
简洁、强大、易读的字符串处理新标准
在Python 3.6+中,f-strings(格式化字符串字面值)彻底改变了字符串格式化的方式。它比传统的%
格式化或str.format()
更直观高效,直接嵌入表达式并自动计算值。
🔥 核心优势
极简语法:变量直接嵌入
{}
,无需冗长占位符name = "Alice" print(f"Hello, {name}!") # Hello, Alice!
支持表达式:大括号内可执行任意有效表达式
a, b = 5, 3 print(f"{a} * {b} = {a * b}") # 5 * 3 = 15
高级格式化:轻松控制数字/日期格式
price = 99.99 print(f"Price: {price:.2f} USD") # Price: 99.99 USD print(f"Hex: {255:#0x}") # Hex: 0xff
多行字符串:保持复杂格式清晰
user = { "name": "Bob", "age": 30} msg = ( f"Name: {user['name']}\n" f"Age: {user['age']}" )
⚠️ 注意事项
- 引号嵌套:内部用单引号时,外部建议用双引号
f"My name is {name!r}"
→ 自动转义为'Alice'
- 禁止空表达式:
{}
必须包含内容,否则语法错误 - 性能优势:比
%
和.format()
快约2-3倍(实测)
💡 最佳实践
# 对齐文本 | <左对齐 >右对齐 ^居中
print(f"{'Python':>10}") # " Python"
# 动态属性访问
import datetime
now = datetime.datetime.now()
print(f"Today: {now:%Y-%m-%d}") # Today: 2025-06-23
总结:f-strings凭借简洁性、高性能和表达力,已成为现代Python开发的字符串格式化首选。立即迁移旧代码,体验生产力提升!
✨ 提示:在循环或高频调用场景中使用f-strings,能显著优化程序性能。