Python字符串格式化教程_fstring全面解析

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

f-string 是什么?

Python 3.6 引入的 f-string(formatted string literal)是最简洁、高效、可读性最强的字符串格式化方式。它以字母 fF 开头,用花括号 {} 包裹表达式,运行时直接求值并转换为字符串。

基本用法:变量插值与表达式计算

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:所见即所得,性能最优,推荐作为默认选择