Python中f - 字符串(f-string)
在 Python 中,f - 字符串(f-string) 是一种简洁高效的字符串格式化方法,于 Python 3.6 引入。
f-string 基本语法
以
f
或F
为前缀的字符串,使用{表达式}
嵌入变量或计算内容:
name = "Python"
version = 3.11
print(f"我正在学习 {name} {version} 版本") # 输出:我正在学习 Python 3.11 版本
直接嵌入变量
将变量值直接插入字符串:
age = 25
score = 95.5
print(f"年龄:{age},分数:{score}") # 输出:年龄:25,分数:95.5
支持表达式计算
{}
内可直接写入运算表达式,自动计算结果:
a = 10
b = 3
print(f"{a} + {b} = {a + b}") # 输出:10 + 3 = 13
print(f"{a} 的平方是 {a **2}") # 输出:10 的平方是 100
print(f"是否偶数:{a % 2 == 0}") # 输出:是否偶数:True
调用函数或方法
{}
中支持直接调用函数或对象方法:
def get_greeting():return "Hello"text = "hello world"
print(f"{get_greeting()}! {text.upper()}") # 输出:Hello! HELLO WORLD
格式化数值与日期
通过
{表达式:格式说明符}
控制输出格式:
pi = 3.1415926
print(f"π ≈ {pi:.2f}") # 输出:π ≈ 3.14from datetime import datetime
now = datetime(2025, 8, 17, 15, 30)
print(f"当前日期:{now:%Y年%m月%d日}") # 输出:当前日期:2025年08月17日
print(f"当前时间:{now:%H:%M:%S}") # 输出:当前时间:15:30:00
处理引号冲突
混合使用单双引号避免语法冲突:
name = "Alice"
print(f'她的名字是 "{name}"') # 输出:她的名字是 "Alice"
print(f"他说: '我叫{name}'") # 输出:他说: '我叫Alice'
嵌套访问复杂结构
直接访问字典、列表等嵌套数据:
user = {"name": "Bob", "info": {"age": 30, "city": "Beijing"}}
print(f"姓名:{user['name']},年龄:{user['info']['age']}") # 输出:姓名:Bob,年龄:30
注意事项
必须添加
f
或F
前缀:
缺少前缀时{}
会被当作普通文本处理。表达式内不能直接使用反斜杠
\
:
需提前定义转义字符变量:newline = "\n" print(f"换行符:{newline}结束")
性能优势:
f-string 在编译时解析,效率高于%
格式化和str.format()
。