f 是 Python 3.6+ 中格式化字符串字面值(f-string)的标识符,用于在字符串中嵌入变量或表达式并实时求值;它比 % 和 .format() 更简洁高效,支持内联计算与格式化,但不支持嵌套 f-string 或未闭合引号。

Python 中字符串前面的 f 是 f-string 的标识符,表示这是一个“格式化字符串字面值”(formatted string literal),从 Python 3.6 开始正式支持。
f-string 的基本用法
在字符串前加 f 或 F(大小写均可),然后在字符串中用 {} 包裹变量名或任意合法表达式,Python 会在运行时自动计算并插入结果。
-
f"Hello {name}"→ 如果name = "Alice",结果是"Hello Alice" -
f"2 + 3 = {2 + 3}"→ 直接输出"2 + 3 = 5" -
f"π ≈ {3.1415926:.3f}"→ 格式化为三位小数:"π ≈ 3.142"
f 和其他前缀的区别
别把 f 和其他字符串前缀混淆:
- u:表示 Unicode 字符串(Python 3 中已默认支持,一般不用显式加 u)
- r:表示原始字符串(忽略反斜杠转义,常用于正则、路径)
-
b:表示字节序列(
bytes类型,如b'hello') - f:只负责字符串内插值和表达式求值,不改变编码或类型
为什么推荐用 f-string
相比旧方式,f-string 更简洁、高效、可读性更强:
自从百度屏蔽淘宝客网站、淘宝抛弃淘宝客之后,个人站长集体陷入了恐慌之中。此时,什么值得买网的异军突起引起了广大个人站长的极大关注。做一个什么值得买一样的导购网站成了众多个人站长的一致心愿! TP-COUPON 导购系统 即是让个人站长实现此心愿的绝佳选择! 欢迎个人站长选用。V1.1版 更新记录:1.修正请求时查询淘宝店铺错误的bug2.删除一些无用的代码
立即学习“Python免费学习笔记(深入)”;
- 比
%格式化(如"%s: %d" % (name, age))更直观 - 比
.format()(如"{}: {}".format(name, age))少写重复内容 - 支持内联表达式、函数调用甚至条件判断(如
f"{x if x > 0 else 'neg'}") - 运行时直接解析,性能优于其他两种格式化方法
注意点
使用 f-string 时需留意几个常见限制:
- 大括号内不能有未闭合的引号或注释(如
f"{print('hi') # comment}"会报错) - 不能嵌套另一个 f-string(但可以嵌套普通字符串变量)
- 表达式不能包含赋值操作符
=(Python 3.8+ 可用海象运算符:=,如f"{x:=10}") - 如果字符串本身要显示花括号,需写两个:
f"{{literal}}"→ 输出{literal}










