Python使用f-string格式化字符串字面量的完整教学

 更新时间:2026年02月02日 09:33:50   作者:xingzhemengyou1  
Python 中的 f-string(格式化字符串字面量)是自 Python 3.6 起引入的一种现代、高效且直观的字符串格式化方法,下面小编就和大家详细介绍一下具体使用吧

Python 中的 f-string(格式化字符串字面量)是自 Python 3.6 起引入的一种现代、高效且直观的字符串格式化方法。它通过在字符串前添加 fF 前缀,并在字符串内部使用花括号 {} 嵌入变量或表达式,使得动态生成字符串变得异常简洁和可读。

一、f-string 的核心优势与基本用法

f-string 的设计旨在解决传统格式化方法(如 % 操作符和 str.format())的冗长与易错问题。其核心优势在于语法简洁执行高效,并且支持在运行时直接求值嵌入的任何有效 Python 表达式。

基础用法是直接在 {} 中放入变量名:

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

你不仅可以嵌入变量,还可以嵌入复杂的表达式,包括算术运算和函数调用:

x = 10
y = 20
result = f"{x} + {y} = {x + y}"  # 输出: 10 + 20 = 30

def square(n):
    return n * n
num = 5
squared = f"The square of {num} is {square(num)}."  # 输出: The square of 5 is 25.

二、进阶格式化技巧

f-string 的强大之处在于其丰富的格式化选项,通过在大括号内使用 : 后跟格式说明符来实现。

控制数字格式:可以轻松指定浮点数精度、千位分隔符或显示进制。

pi = 3.141592653589793
print(f"Pi is approximately {pi:.2f}.")  # 输出: Pi is approximately 3.14.

number = 1234567.89
print(f"Total sales: ${number:,.2f}")    # 输出: Total sales: $1,234,567.89

num = 255
print(f"Hex: {num:#x}")                  # 输出: Hex: 0xff

文本对齐与填充:可以控制字符串的宽度、对齐方式和填充字符。

name = "Bob"
print(f"{name:>10}")     # 右对齐,宽度10,输出: `       Bob`
print(f"{name:_<10}")    # 左对齐,用_填充,输出: `Bob_______`
print(f"{name:*^10}")    # 居中对齐,用*填充,输出: `***Bob****`

格式化日期时间:直接对 datetime 对象使用格式说明符。

from datetime import datetime
now = datetime.now()
print(f"Today's date is {now:%Y-%m-%d %H:%M:%S}")  # 输出: Today's date is 2025-12-30 14:30:45

三、其他重要特性与注意事项

多行 f-string:可以通过三引号或隐式拼接来创建多行字符串。

name = "Bob"
age = 25
bio = f"""
Name: {name}
Age: {age}
Profession: Software Engineer
"""

调试支持(Python 3.8+):使用 = 修饰符可以快速输出变量名及其值,便于调试。

x = 10
print(f"{x=}")  # 输出: x=10

处理特殊字符

  • 若要在字符串中显示花括号本身,需使用双花括号 {{}} 进行转义。
  • 大括号内的表达式不能包含反斜杠 \ 进行转义。若需使用引号,应确保内外引号不同(例如,外层用双引号,内层用单引号)。

性能优势:由于其内部实现机制是编译时解析为高效字节码,而非运行时进行复杂的解析或函数调用,f-string 的执行速度通常显著快于 % 格式化与 str.format() 方法。

四、与旧式格式化方法的对比

在 f-string 出现之前,Python 主要依赖 % 格式化与 str.format() 方法。

% 格式化:语法类似 C 语言,在复杂场景下可读性差且易出错,官方已不推荐。

message = "Hello, %s. You are %s." % (name, age)

str.format() 方法:比 % 更灵活,支持位置参数和关键字参数,但在多变量时代码仍显冗长。

message = "Hello, {}. You are {}.".format(name, age)

相比之下,f-string 语法最直观,将变量和表达式直接嵌入字符串上下文,大大提升了代码的可读性和编写效率。除非需要兼容 Python 3.6 之前的版本,否则 f-string 是现代 Python 开发中字符串格式化的首选方法

五、总结

总而言之,Python 的 f-string 通过其 f"文本 {表达式}" 的简洁语法,完美融合了表达力可读性高性能。它支持从简单的变量替换到复杂的表达式求值、精细的格式控制以及日期处理,是构建动态字符串最现代和推荐的方式。

到此这篇关于Python使用f-string格式化字符串字面量的完整教学的文章就介绍到这了,更多相关Python格式化字符串字面量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python深度学习之FastText实现文本分类详解

    Python深度学习之FastText实现文本分类详解

    FastText是一种典型的深度学习词向量的表示方法,它非常简单通过Embedding层将单词映射到稠密空间,然后将句子中所有的单词在Embedding空间中进行平均,进而完成分类操作
    2022-09-09
  • python获取命令行输入参数列表的实例代码

    python获取命令行输入参数列表的实例代码

    今天小编就为大家分享一篇python获取命令行输入参数列表的实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • python tkinter图形界面代码统计工具(更新)

    python tkinter图形界面代码统计工具(更新)

    这篇文章主要为大家详细介绍了python tkinter图形界面代码统计工具,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • pycocotools介绍以及在windows10下的安装过程

    pycocotools介绍以及在windows10下的安装过程

    这篇文章主要介绍了pycocotools介绍以及在windows10下的安装过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python开发之QT解决无边框界面拖动卡屏问题(附带源码)

    Python开发之QT解决无边框界面拖动卡屏问题(附带源码)

    朋友在学习QT的过程中,都会遇到各种问题,今天就QT无边框拖动花屏问题给大家详细介绍,究竟该如何解决呢,下面通过实例代码和图文相结合给大家详细介绍,需要的朋友参考下吧
    2021-05-05
  • 利用Python脚本实现批量将图片转换为WebP格式

    利用Python脚本实现批量将图片转换为WebP格式

    Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为一种高效的图像格式,能显著减小文件大小,优化网络传输,需要的朋友可以参考下
    2025-06-06
  • Django自定义用户认证示例详解

    Django自定义用户认证示例详解

    这篇文章主要给大家介绍了关于Django自定义用户认证的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-03-03
  • 如何用Matplotlib 画三维图的示例代码

    如何用Matplotlib 画三维图的示例代码

    这篇文章主要介绍了如何用Matplotlib 画三维图的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • django跳转页面传参的实现

    django跳转页面传参的实现

    这篇文章主要介绍了django跳转页面传参的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Python数据分析之Python和Selenium爬取BOSS直聘岗位

    Python数据分析之Python和Selenium爬取BOSS直聘岗位

    今天教各位小伙伴怎么用Python和Selenium爬取BOSS直聘岗位,文中有非常详细的代码示例,对正在学习python爬虫和数据分析的小伙伴有很好地帮助,需要的朋友可以参考下
    2021-05-05

最新评论