python中f是什么

12次阅读

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

python中f是什么

Python 中字符串前面的 ff-string 的标识符,表示这是一个“格式化字符串字面值”(formatted string literal),从 Python 3.6 开始正式支持。

f-string 的基本用法

在字符串前加 fF(大小写均可),然后在字符串中用 {} 包裹变量名或任意合法表达式,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 更简洁、高效、可读性更强:

立即学习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}
text=ZqhQzanResources