Python 中的 F 字符串2025年1月11日 | 阅读 6 分钟 在本教程中,我们将学习字符串格式化机制。f-string 是格式化字符串的最佳方式。字符串的格式化风格使字符串更具可读性、更简洁,并且更不容易出错。它也比其他方式更快。 在深入研究这个主题之前,我们将首先回顾一下什么是 f-string 以及在 f-string 之前使用的技术。 什么是 F-string?Python 中的 f-string(格式化字符串字面量)是一种使用大括号 {} 在字符串字面量中嵌入表达式的方法。f-string 引入于 Python 3.6,它提供了一种简洁易读的方式,可以在字符串中包含 Python 表达式的值。 f-string 的主要特点
Python 中的旧字符串格式化有两种主要的字符串格式化方法:% - 格式化和 str.format()。但这两种方法都有一些局限性。让我们简要介绍一下这些方法。 1.% - 格式化Python 中旧的字符串格式化是指使用 % 运算符,这类似于 C 语言中的 printf 风格格式化。这种方法在很大程度上已被 str.format() 和 f-strings 等更现代的技术取代,但它仍然被广泛使用和理解。 "此处描述的格式化操作表现出各种怪癖,导致一些常见错误(例如无法正确显示元组和字典)。 使用较新的格式化字符串字面量或 str.format() 接口有助于避免这些错误。" - 官方文档。 如何使用 % - 格式化我们可以使用 %-运算符执行内置操作。让我们通过以下示例来理解。 输出 Hello Michel 我们也可以使用元组来存储多个变量。让我们看以下示例。 输出 Hello Sharma You are 24. 为什么不推荐 %-格式化因为随着变量的增加和字符串变长,我们的代码可读性大大降低。代码看起来很混乱。让我们看以下示例。 示例 - 输出 Hello, Steve Rogers. Your age is 70. You are a Superhero. You were a member of Marvel. 正如我们在上面的代码中可以看到的,代码变得难以阅读且容易出错。这就是为什么这种字符串格式化方式不好。 2.str.format() 方法Python 中的 str.format() 方法是一种比旧的 % 运算符更灵活、更强大的字符串格式化技术。str.format() 引入于 Python 2.7 和 3.0,它允许更复杂、更易读的字符串格式化。 如何使用 str.format()它是对 %-格式化的改进。它就像在对象上调用一个普通的内置函数,该对象被转换为字符串。 让我们看下面的例子。 示例 - 使用变量 访问字典元素 输出 Hello Peter, You are 17 为什么不推荐 str.format() 方法?str.format() 比 %-format 方法效率更高,但在处理多个参数时仍然可能非常冗长。 F-string 方法它是 PEP 498 引入的一种新的字符串格式化机制。它也称为字面字符串插值,或者更常见的称为 F-strings (字符串字面量前带有 f 字符)。该机制的主要重点是使插值更容易。 f-string 方法在 Python 3.6 中引入,提供了一种使用大括号 {} 在字符串字面量中嵌入表达式的简洁高效的方法。f-string(格式化字符串字面量)提高了可读性,并且比其他字符串格式化方法更快。 当我们用字母 'F' 作为字符串的前缀时,该字符串本身就变成了 f-string。f-string 的格式化方式与 str.format() 方法非常相似。F-string 提供了一种在字符串字面量中嵌入 Python 表达式以进行格式化的便捷方式。 示例 - 输出 Hello, My name is Tushar and I'm 28 years old. 在上面的代码中,我们使用了 f-string 来格式化字符串。它在运行时进行评估;我们可以将所有有效的 Python 表达式放入其中。 我们可以在单个语句中使用它。 输出 60 但是,我们也可以在函数中使用它。 输出 Sachin Tendulkar is great f-string 也可以与类对象一起使用。让我们通过以下示例来理解。 示例 - 输出 Keenu Reevs's superhit movie is Matrix. 解释 - 在上面的代码中,我们使用了 __str__() 和 __repr__() 来将对象表示为字符串。所以我们需要在类定义中包含至少一种方法。f-string 将使用 __str__() 方法;我们也可以通过包含转换标志 !r 来使用 __repr__()。 输出 Keenu Reevs's superhit movie is Matrix. Keenu Reevs Matrix Superhit 字典中的 F-string我们在 f-string 中处理字典键时需要格外小心。使用字典键和 f-string 需要不同的引号。让我们通过以下示例来理解。 示例 - 输出 John is 19 years old. 对于字典,以下方法是不允许的。 示例 - 输出 File " 正如我们在上面的代码中可以看到的,我们将双引号改为了单引号,这引发了一个错误。 速度采用这种格式风格的原因是它的速度。f-string 在运行时进行评估,而不是常量值。它使用最少的语法在字符串字面量中嵌入表达式。它之所以快,是因为它是在运行时进行评估的,而不是常量值。 让我们看以下字符串比较。 示例 - 1 输出 0.0022497819736599922 示例 - 2 输出 0.0025783719611354172 示例 - 3 输出 0.0019360429723747075 正如我们所观察到的,f-string 位于列表的顶部。 大括号要使代码中出现大括号,您应该使用双引号,如下所示。让我们通过以下示例来理解。 示例 - 输出 {70 + 40} 如果我们使用三重括号,它将在我们的字符串中显示单个括号。让我们通过以下示例来理解。 示例 - 输出 {94} 如果我们使用多于三重括号,我们可以显示更多的括号。 示例 - 输出 {{70 + 4}} 反斜杠我们可以在 f-string 的字符串部分使用反斜杠转义符。但是,我们不能在 f-string 的表达式部分使用反斜杠进行转义。让我们通过以下示例来理解。 示例 - 输出 SyntaxError: f-string expression part cannot include a backslash 内联注释我们不能在表达式中包含 # 符号。这会引发语法错误。让我们通过以下示例来理解。 示例 - 输出 SyntaxError: f-string expression part cannot include '#' 结论我们可以使用这三种方法中的任何一种,但 f-string 方法提供了更简洁、可读性更强、更方便的方式。它更快,更不容易出错。我们已经解释了 f-string 几乎所有可能的情况,以及为什么应该在编程中考虑这种方法。 下一个主题Brython 如何工作 |
在本教程中,我们将讨论 Python 装饰器的一个高级概念。我们假设您对 Python 装饰器有基本的了解。如果没有,您可以从 Python 装饰器教程中学习。什么是记忆化?在学习记忆化之前,让我们简要了解一下...
阅读 2 分钟
从太空观察太阳系会非常有趣。事实上,为什么不使用 Python 来制作太阳系的视觉描绘呢?在这个项目中,太阳系将使用 Python 进行图形表示。什么是太阳系?地球是其中的一员...
阅读 6 分钟
Paul Viola 和 Michael Jones 提出了,它被高效地用于对象检测。该算法基于机器学习方法,其中使用大量图像(正面或负面)来训练分类器。正面图像:正面图像是一种类型的图像...
阅读 4 分钟
Matplotlib Matplotlib 是一个 Python 库,它使用数值和数学函数扩展了 NumPy 库。Pyplot 是一个基于状态的接口,类似于 MATLAB 的 Matplotlib 模块。刻度是显示在轴上的数据点符号。Matplotlib 的默认刻度定位器和格式化程序旨在在以下方面有用...
阅读 3 分钟
简介:在静态射击游戏《太空入侵者》中,用户在屏幕底部滑动激光,向他们上方的外星人射击。当外星人接近屏幕边缘时,它们会向下移动,并成群移动...
阅读20分钟
在本教程中,我们将讨论如何使用 Python 程序获取给定数字的质因数。我们都熟悉质数,如果不知道,质数是指只能被 1 或自身整除的数字。例如...
阅读 3 分钟
在许多情况下,我们必须从单个字符串或不同的一组数字中找到不同的组合。要在 Python 中找到这些组合,我们有 itertools 模块,它是查找不同组合和排列的最常用模块。这个模块是一个非常有效的工具,并且...
5 分钟阅读
红黑树 红黑树是一种二叉搜索树,它具有“近乎”平衡的附加属性。红黑树中的每个节点都有一个颜色,可以是红色或黑色,这些颜色用于在插入和删除期间保持平衡。红黑树插入...
7 分钟阅读
列表是 Python 中最常用的数据结构之一。我们不断在许多不同的应用程序中使用列表,从解决简单问题到复杂问题。在 Python 中,列表取代了数组,具有以下优点:大小动态,可以在单个列表中存储不同数据类型的项目 我们...
阅读 3 分钟
在下面的教程中,我们将了解如何使用 Python 编程语言中的 NLTK(自然语言工具包)包对单词进行词干提取。词干提取简介 词干提取是自然语言处理中管道过程的重要组成部分。词干提取是生成形态学...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India