1

使用 f 字符串,您可以使用一些变量值直接在字符串中填充“占位符”。反对,让我们说使用 str.format() 方法,经常看到。

例子:

In [1]: x=3
In [2]: y=4
In [3]: print(f'The product of {x} and {y} is {x*y}.')
The product of 3 and 4 is 12.

这个 f-strings 的概念是否只在 python 中找到?或者是否有任何其他语言支持这一点,可能使用不同的名称?

4

3 回答 3

3

简短的回答:不 - 不是 python 独有的。在 python 中,它是由Literal String Interpolation - PEP 498在 3.6 中引入的

在 C# 中有$ - 字符串插值作为某些函数的简写,您可以将String.Format用于:

string val = "similar";
string s = $"This is {val}"     // s == "This is similar"

// vs. 

var s2 = string.Format ("This is {0}", val); // {0} = 0th param that follows
于 2018-07-13T08:48:55.560 回答
1

您也可以在 Javascript 中的Template Literals名称下找到它。特别是,请参阅表达式插值部分以获取与 OP 问题中的示例类似的示例。

于 2018-07-13T08:57:33.613 回答
1

外壳:从黑暗时代开始,外壳用于扩展双引号字符串中的参数(以及不带引号的参数)。

Perl: Perl 有一个脆弱的一面,至少从我购买第一版 Camel 书并开始学习该语言时起,它就在双引号字符串中进行了插值。

我认为其他人可能对 Perl 中引入字符串插值的确切日期更具体,但我怀疑它从一开始就在那里。

许多其他编程语言,尤其是那些使用sigils的编程语言,都共享这种插值概念。

于 2018-07-13T09:14:14.597 回答