Python使用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 f-string字符串格式化的进阶指南 Python实现字符串格式化的五种方法 Python中字符串格式化、切片与常见陷阱详解 Python 的格式化字符串(f-string)的基本用法详解 Python f-string实现高效字符串格式化 Python中f-string字符串格式化的使用
  • 目录
    • 一、f-string 的核心优势与基本用法
    • 二、进阶格式化技巧
    • 三、其他重要特性与注意事项
    • 四、与旧式格式化方法的对比
    • 五、总结

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

    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 f-string字符串格式化的进阶指南
    • Python实现字符串格式化的五种方法
    • Python中字符串格式化、切片与常见陷阱详解
    • Python 的格式化字符串(f-string)的基本用法详解
    • Python f-string实现高效字符串格式化
    • Python中f-string字符串格式化的使用

    站内搜索