f-string是Python 3.6引入的最简洁高效的字符串格式化方式,以f或F开头,用{}嵌入变量、表达式、函数调用等并实时求值,支持冒号后接格式说明符控制精度、对齐等。

f-string 是什么?
Python 3.6 引入的 f-string(formatted string literal)是最简洁、高效、可读性最强的字符串格式化方式。它以字母 f 或 F 开头,用花括号 {} 包裹表达式,运行时直接求值并转换为字符串。
基本用法:变量插值与表达式计算
f-string 支持直接嵌入变量名、调用函数、执行算术运算甚至访问属性和索引,无需额外转换或格式说明符(除非需要控制精度或对齐)。
- 插入变量:
f"姓名:{name}" - 计算表达式:
f"5 + 3 = {5 + 3}"→"5 + 3 = 8" - 调用方法:
f"{text.upper()}"、f"{items[0].title()}" - 多级访问:
f"{user['profile']['age']}"或f"{obj.data.name}"
格式控制:在花括号里加冒号
在 {} 中用冒号 : 后接格式说明符,可控制数字精度、对齐、填充、进制等,语法与 str.format() 兼容。
- 保留两位小数:
f"价格:{price:.2f}" - 左对齐并占宽10字符:
f"{name: - 补零显示4位数:
f"{num:04d}"(如7 → "0007") - 十六进制与大写:
f"{255:x}" → "ff",f"{255:X}" → "FF"
实用技巧与注意事项
f-string 功能强大,但需注意作用域、引号嵌套和调试友好性。
立即学习“Python免费学习笔记(深入)”;
- 花括号内写的是 Python 表达式,必须在当前作用域中可访问
- 外层用双引号,内部可用单引号(反之亦然),避免转义:
f"用户:{'Alice'}" - 要显示字面量花括号,用两个大括号:
f"{{x}} = {x}"→"{x} = 10" - 不支持反斜杠换行,长表达式建议先赋值再插入,提升可读性
对比其他格式化方式
相比 % 格式化和 str.format(),f-string 更快、更直观、更少出错:
-
%:老旧,类型匹配易错,不支持表达式:"%s = %d" % (name, age) -
.format():灵活但冗长,重复写变量名或编号:"{} = {}".format(name, age) - f-string:所见即所得,性能最优,推荐作为默认选择










