17370845950

Python f-string 格式化字符串详解
f-string是Python 3.6+的字符串格式化方法,通过f前缀和{}嵌入变量或表达式,支持数值格式化、函数调用与属性访问,语法简洁高效。

Python 的 f-string(格式化字符串字面值)自 3.6 版本引入,是一种简洁高效的字符串格式化方式。它通过在字符串前加 fF 前缀,将变量或表达式直接嵌入花括号 {} 中,实现动态生成字符串。

基本用法

f-string 最常见的用途是插入变量。只需在花括号内写上变量名即可。

name = "Alice"
age = 30
print(f"My name is {name} and I am {age} years old.")
# 输出:My name is Alice and I am 30 years old.

你也可以在花括号中使用表达式,f-string 会自动计算其值。

x = 5
y = 10
print(f"The sum of {x} and {y} is {x + y}.")
# 输出:The sum of 5 and 10 is 15.

格式化数值

f-string 支持丰富的格式化选项,尤其适用于数字的显示控制。格式语法为 {expression:format_spec}

  • 小数点精度:{value:.2f} 表示保留两位小数
  • 千位分隔符:{value:,} 添加逗号分隔
  • 百分比表示:{ratio:.1%} 将数值转为百分比
price = 1234.5678
ratio = 0.875

print(f"Price: ${price:.2f}") # 输出:Price: $1234.57 print(f"Formatted: {price:,}") # 输出:Formatted: 1,234.5678 print(f"Discount: {ratio:.1%}") # 输出:Discount: 87.5%

调用函数和访问属性

f-string 允许在花括号中调用函数或访问对象属性,提升灵活性。

text = "hello world"
print(f"Title case: {text.title()}")  # 输出:Title case: Hello World

class Person: def init(self, name): self.name = name

p = Person("Bob") print(f"User: {p.name}") # 输出:User: Bob

注意:f-string 中不能使用反斜杠转义,也不能在花括号内使用双引号而不加外部单引号。

多行 f-string

对于长字符串,可使用多行 f-string,配合括号包裹更清晰。

name = "Charlie"
job = "Engineer"
city = "Beijing"

info = ( f"Name: {name}\n" f"Job: {job}\n" f"City: {city}" ) print(info)

输出结果会按行展示对应信息,结构清晰易读。

基本上就这些。f-string 语法直观、性能高,已成为 Python 字符串格式化的首选方式。掌握其基本用法和格式控制,能让你的代码更简洁有力。