当前位置: 首页 > news >正文

Python字符串格式化全面指南:f-string与常用方法详解

本文系统讲解f-string的核心用法及与其他字符串格式化方法的对比。内容涵盖基础到高级应用,并附带实战代码示例。


一、f-string基础篇:简洁高效的字符串嵌入

f-string(格式化字符串字面值)是Python 3.6+引入的核心特性,以 f 或 F 为前缀,通过 {} 直接嵌入变量或表达式。

1. ​基础语法与变量嵌入

name = "小明"  
age = 18  
print(f"姓名:{name},年龄:{age}")  # 输出:姓名:小明,年龄:18  
​优势:无需类型占位符(如 %s),代码更简洁。

2. ​表达式与函数调用

支持在 {} 内执行运算或调用函数:

import math  
print(f"圆的面积:{math.pi * 3**2:.2f}")  # 输出:圆的面积:28.27  
# ​注意:表达式会在运行时实时求值。

二、f-string进阶篇:精细控制输出格式

1. ​数值格式化

通过格式说明符(Format Specifiers)控制精度、对齐等:

price = 19.99999  
# 保留两位小数 + 千位分隔符  
print(f"总价:{price * 1000:,.2f}元")  # 输出:总价:19,999.99元  
# 右对齐(宽度10)  
print(f"价格:{price:>10.2f}")        # 输出:价格:     20.00  
​常用符号:
:.2f:保留两位小数
:>10:右对齐,宽度10
:,:千位分隔符

2. ​日期与特殊类型格式化

结合 datetime 模块自定义时间格式:

from datetime import datetime  
now = datetime.now()  
print(f"当前时间:{now:%Y-%m-%d %H:%M:%S}")  # 输出:2025-03-19 14:30:00  

3. ​调试技巧:表达式与变量名输出

Python 3.8+支持 = 符号,输出变量名及值:

x = 100  
print(f"{x=}")  # 输出:x=100  

三、其他字符串格式化方法对比

1. % 格式化(经典方法)

name = "Yant"  
print("姓名:%s,年龄:%d" % (name, 18))  # 输出:姓名:Yant,年龄:18  
# ​适用场景:旧代码维护,但可读性较差。

2. ​str.format() 方法

支持位置参数与关键字参数,灵活性更高:

print("商品:{0},价格:{1:.2f}".format("苹果", 5.5))  # 输出:商品:苹果,价格:5.50  

3. ​模板字符串(安全场景)​

适用于处理用户输入(防止代码注入):

from string import Template  
t = Template("姓名:$name,年龄:$age")  
print(t.substitute(name="小红", age=16))  # 输出:姓名:小红,年龄:16  

四、最佳实践与场景选择

​方法​优点​缺点​适用场景
f-string简洁高效、支持表达式仅限Python 3.6+新项目开发、复杂格式化
str.format()兼容性好、支持复杂格式语法较冗长需要兼容旧版本的项目
% 格式化简单快速类型安全性差快速脚本或旧代码维护
模板字符串安全性高功能有限用户输入处理、国际化场景

五、实战案例:生成销售报表

sales_data = [  
    {"product": "键盘", "price": 299.0, "quantity": 5},  
    {"product": "鼠标", "price": 89.9, "quantity": 10}  
]  

# 动态计算对齐宽度  
max_width = max(len(item["product"]) for item in sales_data)  

# 生成表格  
print(f"{'商品':<{max_width}} {'单价':>10} {'数量':>8} {'小计':>12}")  
for item in sales_data:  
    total = item["price"] * item["quantity"]  
    print(f"{item['product']:<{max_width}} {item['price']:>10.2f} {item['quantity']:>8} {total:>12.2f}")
  
输出示例:
商品   单价      数量        小计  
键盘    299.00    5         1495.00  
鼠标    89.90     10        899.00  

六、总结与建议

​1. 优先使用f-string:语法简洁、性能优异,适合大多数场景。
2. ​注意版本兼容性:确保运行环境支持Python 3.6+(f-string)或3.8+(调试符号=)。
​3. 灵活选择方法:根据安全性需求(如用户输入)或兼容性要求选择其他方式。

通过掌握这些技巧,您可以轻松应对字符串格式化的各类需求,提升代码可读性与开发效率!

相关文章:

  • pyqt 按钮自动布局方案
  • Hadoop•常用命令
  • LS-NET-006-思科MDS 9148S 查看内存
  • Python:多态,静态方法和类方法
  • golang 生成单元测试报告
  • 目标检测——清洗数据
  • Java 填充 PDF 模版
  • Python个人学习笔记(18):模块(异常处理、traceback、日志记录)
  • MAC-在使用@Async注解的方法时,分布式锁管理和释放
  • STM32原理性知识
  • 一种基于大规模语言模型LLM的数据分析洞察生成方法
  • 如何在 Node.js 中使用 .env 文件管理环境变量 ?
  • Rust嵌入式开发环境搭建指南(基于Stm32+Vscode)
  • ASP3605同步降压调节器——满足汽车电子严苛要求的电源芯片方案
  • 数学之握手问题
  • Java替换jar包中class文件
  • Matlab概率区间预测全家桶更新了,新增光伏出力区间预测,4种分布可供预测
  • 【单片机通信技术应用——学习笔记三】液晶屏显示技术,取模软件的应用
  • AI重构工程设计、施工、总承包行业:从智能优化到数字孪生的产业革命
  • 【C++】八大常见的设计模式的实现与实践指南
  • 徐徕任上海浦东新区副区长,此前已任区委常委
  • 伊朗港口爆炸死亡人数升至70人
  • 葡萄牙、西班牙突发大范围停电,交通和通信服务受到严重影响
  • 俄乌战火不熄,特朗普在梵蒂冈与泽连斯基会晤后口风突变
  • 药明康德一季度净利增长89%,在手订单增超四成至523亿元
  • “上海-日喀则”直飞航线正式通航,将于5月1日开启首航