Python中的字符串插值

2025年1月5日 | 阅读 5 分钟

字符串插值是一种强大的方法,在Python中用于创建动态和灵活的字符串。它有助于将变量、表达式甚至功能嵌入到字符串字面量中,从而生成复杂且明显可定制的输出。Python有多种字符串插值方法,如基于 % 的格式化字符串、str.Format()、f-string 和模板类。了解这些方法将帮助您利用Python的字符串插值功能编写简洁、高效且易于维护的代码。

本文将带您探索字符串插值的概念、其用途、功能、方法以及在Python中的实现。

关于Python字符串插值的更多信息

Python 中的字符串插值是指将变量或表达式嵌入字符串以创建新字符串的方式。

字符串插值支持动态替换,它包含两部分:

  • 字符串模板

字符串模板用于存储值,以及字符串的插值。它需要一些方法来向字符串模板添加值。有四种字符串插值方法。每种方法都有其优点和缺点;我们将深入学习每种方法及其实现。

String Interpolation in Python

字符串插值的方法如下:

  1. Modulo character (%): 使用模 % 字符可以替换字符串。它可以添加到字符串字面量中,后面跟着字符串格式指示符和变量。
  2. .format( ): 该方法可以调用字符串字面量。字符串替换可以通过花括号 { } 来指示,这些花括号被插入到字符串中。.format() 方法的参数代表用于替换字符串的值。
  3. f-string: 格式化字符串字面量可以通过在字符串字面量前加上字母 f 来使用。花括号 { } 可用于分隔Python字符串并替换它。
  4. Template Class: 内置的模板类也可以用于字符串插值。template() 将字符串模板存储在一个变量中。然后使用 .subsitute() 函数进行字符串替换。

让我们深入了解这些技术的详细知识。

用于字符串格式化的模运算符

模运算符用于字符串插值和格式化。使用模运算符进行格式化时,会使用 % 字符以及格式指示符,该指示符指示字符串模板中条目的类型。格式指示符尝试将值转换为模函数中提供的值。格式化在将任何值添加到字符串之前完成。

使用模运算符进行字符串插值的基础语法是:

语法

%[flg] [width] [.precision] format_indicator %(values)

与模函数一起使用的格式指示符包括:

  • %s: 字符串
  • %d: 整数
  • %e: 小写指数
  • %E: 大写指数
  • %x: 小写十六进制
  • %X: 大写十六进制
  • %r: 原生
  • %c: 返回字符(从整数或字符转换而来)
  • %a: ASCII
  • %o: 八进制
  • %f: 浮点数

它基本上将变量插入到字符串中。虽然 Python 中仍然支持 % 格式化,但与较新的方法相比,由于其复杂性和有限的功能,它被认为不太受青睐。

现在,我们将通过 Python 中的几个示例来学习这种字符串插值方法。

代码

输出

Hey, I am Tom and I am 22 years old.

使用 .format() 方法进行字符串插值

这是另一种字符串插值方法。它为此使用 str.format() 方法。在早期 Python 版本中可用的 .format() 方法为字符串格式化提供了一种灵活的方法。它允许使用位置参数和关键字参数,从而增强了字符串的自定义性。.format() 方法提供了一种将变量和表达式集成到字符串中的通用方法。其语法包括在字符串中使用占位符,然后通过 .format() 函数提供值。

它可以在 Python 的字符串对象上使用。花括号 { } 在 Python 的 .format() 方法的参数中使用。它可能包含数字索引或位置参数等。

以下是 Python 中用于字符串插值的 .format() 方法的详细介绍和解释:

`.format()` 方法在字符串中使用花括号 {} 表示的占位符。这些占位符充当可以插入值的槽。该方法允许使用位置参数或关键字参数,从而在将值传递给占位符时提供了灵活性。位置参数对应于占位符的顺序,而关键字参数通过名称指定占位符。

现在,让我们看一个示例来学习 Python 中的 .format() 方法。

代码

输出

Hey, I am Tom and I am 22 years old.

使用 f-string 进行字符串插值

另一种有益的字符串插值技术是使用 f-string。它也可以称为格式化字符串字面量。F-string 在 Python 3.6 中引入,提供了一种简洁高效的方式,可以直接在字符串中嵌入表达式。它们提供了代码的简单性和可读性。可以通过在字符串变量前加上 f 或 F,并用花括号括起来进行引用。

F-string 允许直接在字符串中引用变量和表达式,与其他插值方法相比,代码更具可读性且更简洁。

让我们通过 Python 中的示例来探索 f-string 的用法。

代码

输出

Hey, I am Tom and I am 22 years old.

使用 Template Class 进行字符串插值

Template 类是 String 模块中的一个子模块。它用于字符串替换。但是,我们不能使用此方法格式化字符串。与不同的技术相比,这种字符串插值技术是安全的。

str.Template 类通过创建带有由美元符号标识并用花括号 {} 包围的占位符的模板字符串来运行。在变量或字符调用之前使用 $,该变量或字符作为参数传递给 Template 类。substitute() 方法将模板字符串中的占位符替换为作为关键字参数传递的值,从而提供了一种安全清晰的字符串插值方式。

让我们通过 Python 中的一个示例来理解 Template 类用于字符串插值的概念。

代码

输出

Hey, I am Tom and I am 22 years old.