在 Python 中,print(f'{xxx}')是使用f-string(格式化字符串字面值,Formatted String Literals)进行字符串格式化并输出的方式,它从 Python 3.6 版本开始引入,是目前最简洁、高效且易读的字符串格式化方法。
一、f-string 的核心语法
f-string 以 **f或F作为字符串前缀,用大括号{}** 包裹变量、表达式、函数调用等内容,Python 会在运行时计算大括号内的内容,并将结果嵌入到字符串中。
基本结构:
print(f"固定文本{变量/表达式}固定文本") # 也可以用单引号或三引号 print(F'固定文本{变量/表达式}固定文本') # F和f等效 print(f'''多行固定文本{变量/表达式}多行固定文本''')二、f-string 的常见用法
1. 基本用法:插入变量
直接在大括号中写入变量名,即可将变量值嵌入字符串。
name = "京东" version = "v1.0" # 插入单个变量 print(f"当前平台:{name}") # 输出:当前平台:京东 # 插入多个变量 print(f"接口名称:{name}图片搜索API,版本:{version}") # 输出:接口名称:京东图片搜索API,版本:v1.02. 高级用法:嵌入表达式
大括号内不仅可以写变量,还能直接写算术运算、条件判断、函数调用等表达式,Python 会自动计算结果。
a = 10 b = 20 # 算术运算 print(f"a + b = {a + b}") # 输出:a + b = 30 print(f"a的平方:{a ** 2}") # 输出:a的平方:100 # 条件表达式(三元运算符) score = 85 print(f"成绩等级:{'优秀' if score >= 90 else '良好'}") # 输出:成绩等级:良好 # 函数调用 def get_time(): import time return time.strftime("%Y-%m-%d") print(f"当前日期:{get_time()}") # 输出:当前日期:2025-12-19 # 字符串方法调用 text = "python" print(f"大写转换:{text.upper()}") # 输出:大写转换:PYTHON3. 格式指定:自定义输出样式
在大括号内用 **:** 后跟格式说明符,可以对数值、字符串、日期等进行精细化格式化(如保留小数、对齐、千位分隔符等)。
4. 特殊场景:处理嵌套和特殊字符
(1)输出大括号本身
如果需要在字符串中显示{},只需用 ** 双大括号{{}}** 表示(转义)。
(2)访问字典的键值对
在大括号中直接通过字典键访问值,注意键的引号与字符串的引号区分(避免冲突)。
(3)嵌套 f-string
f-string 支持嵌套,可在大括号内再次使用 f-string 实现更复杂的格式化。
(4)多行 f-string
使用三引号('''或""")可以实现多行 f-string,保留换行和缩进。
三、f-string 与其他格式化方式的对比
Python 中还有传统的 **% 格式化和str.format()** 方法,相比之下 f-string 更简洁、高效。
四、注意事项
- Python 版本要求:f-string 仅在 Python 3.6 及以上版本可用,若使用低版本需升级或改用其他格式化方式。
- 变量存在性:大括号内的变量必须在当前作用域中定义,否则会抛出
NameError。 - 避免滥用复杂表达式:虽然支持复杂表达式,但过度使用会降低代码可读性,建议将复杂逻辑抽离为变量或函数。
总结
f-string 是 Python 中最推荐的字符串格式化方式,兼具简洁性和功能性,尤其在print()函数中使用时,能快速实现变量、表达式的嵌入和格式化输出,是日常开发中处理字符串的首选。