Python f-string:让字符串格式化变得优雅简洁
在Python 3.6中引入的f-string(格式化字符串字面量)彻底改变了字符串格式化的方式。它不仅语法简洁,执行效率也比传统的%格式化和str.format()方法更高。
基础用法
name = "Alice"
age = 25
print(f"姓名:{name},年龄:{age}")
# 输出:姓名:Alice,年龄:25
表达式嵌入
f-string的强大之处在于可以直接在花括号内写入表达式:
a, b = 5, 3
print(f"{a} + {b} = {a + b}")
# 输出:5 + 3 = 8
items = ["Python", "Java", "Go"]
print(f"共有{len(items)}种语言:{', '.join(items)}")
格式规范
通过格式说明符可以控制输出格式:
price = 99.99
print(f"价格:{price:.2f}元") # 保留两位小数
# 输出:价格:99.99元
number = 1024
print(f"十六进制:{number:#x}") # 十六进制显示
# 输出:十六进制:0x400
性能优势
f-string在运行时进行求值,比%格式化和str.format()更快,因为它将表达式直接转换为相应的字符串,而不需要调用额外的方法。
注意事项
- 引号处理:如果字符串本身包含花括号,需要使用双花括号转义
- 多行字符串:可以创建多行f-string,保持格式清晰
- 复杂表达式:虽然支持复杂表达式,但为了可读性,建议将复杂逻辑放在括号外
f-string以其简洁的语法和出色的性能,已成为Python字符串格式化的首选方式。掌握这一特性,能让你的代码更加Pythonic!