在Python 3.6+中引入的f-string不仅是字符串格式化的利器,更隐藏着许多高阶用法。本文将带你解锁5个让代码更简洁高效的f-string技巧,覆盖数据处理、排版展示和调试等场景。
一、智能数字分隔符
痛点:大额数值难以快速识别量级
population = 1425775850
print(f"中国人口:{population:_}人") # 中国人口:1_425_775_850人
print(f"GDP总量:{9876543210.5:,.2f}美元") # GDP总量:9,876,543,210.50美元
,适用于常规显示,_更符合代码书写习惯- 支持与浮点数精度控制组合使用(
.2f)
二、排版三剑客:对齐与填充
应用场景:生成报表/控制台输出美化
item = "APPLE"
price = 9.99
print(f"[{item:_^15}]") # [_____APPLE_____]
print(f"{'价格:':#>15}{price:<8.2f}") # ##########价格:9.99
>右对齐<左对齐^居中- 可自定义填充符号(单字符)
- 支持数值与字符串混合排版
三、时间格式化终极方案
优势:无需调用strftime方法
from datetime import datetime
now = datetime.now()
print(f"当前时间:{now:%Y-%m-%d %H:%M:%S}") # 当前时间:2023-08-15 14:30:45
print(f"会议时间:{now:%I:%M %p}") # 会议时间:02:30 PM
- 直接嵌入datetime对象
- 支持所有标准格式符(%A星期名称、%B月份名称等)
四、数值精确控制二合一
典型场景:金融数据展示
revenue = 123456789.9876
print(f"季度营收:{revenue:,.2f}元") # 季度营收:123,456,789.99元
print(f"占比:{0.35782:.1%}") # 占比:35.8%
- 千分位分隔符与精度控制组合
- 百分比自动转换(
.1%保留1位小数百分比)
五、调试神器:表达式自描述
效率提升:告别print(f"a={a}")时代
x, y = 5, 3
print(f"{x + y=}") # x + y=8
print(f"{x ** 2=}") # x ** 2=25
- 自动捕获表达式文本和计算结果
- 特别适用于复杂表达式调试
- Python3.8+版本特性
进阶技巧组合
data = {
"timestamp": datetime.now(),
"value": 987654321.456,
"status": "OK"
}
print(f"""
系统状态报告:
{'-'*30}
时间 | {data['timestamp']:%Y-%m-%d %H:%M:%S}
数值 | {data['value']:,.3f}
状态 | {data['status']:_^10}
{'-'*30}
""")
最佳实践建议:
- 优先使用千分位分隔符增强可读性
- 对齐填充时统一宽度规范
- 时间格式遵循ISO 8601标准(%Y-%m-%dT%H:%M:%S)
- 金融数值保留2位小数+千分位
- 生产环境慎用调试表达式