f字符串是python(3.6及更高版本)的独特功能吗?

f字符串是python(3.6及更高版本)的独特功能吗?,python,python-3.x,language-concepts,f-string,Python,Python 3.x,Language Concepts,F String,使用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字符串的这个概念只在python中存在吗?或者有其他语言支持这一点,可能是用不同的名称吗?简短的回答:没有-不是python独有的。在python

使用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字符串的这个概念只在python中存在吗?或者有其他语言支持这一点,可能是用不同的名称吗?

简短的回答:没有-不是python独有的。在python中,它是由3.6引入的

在C#中,有一个简写的函数,用于:


简短回答:否-不是python独有的。在python中,它是由3.6引入的

在C#中,有一个简写的函数,用于:


您也可以在Javascript中的名称下找到它。具体而言,请参见“表达式插值”一节中类似于OP问题中的示例。

您也可以在Javascript中的名称下找到它。具体而言,请参见“表达式插值”一节,以获取与OP问题中类似的示例。

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

Perl:Perl有着贝壳般的一面,至少在我买了第一版《骆驼之书》并开始学习该语言的时候,它就有了双引号字符串的插值

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


许多其他编程语言,特别是使用这种语言的编程语言,都有插值的概念。

shell:从黑暗时代开始,shell用于扩展双引号字符串(以及无引号参数)中的参数

Perl:Perl有着贝壳般的一面,至少在我买了第一版《骆驼之书》并开始学习该语言的时候,它就有了双引号字符串的插值

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

许多其他编程语言,特别是使用插值的编程语言,都有这种插值的概念。

请注意,C#插值字符串并不总是string.Format的快捷方式,如果可以的话,它们只是使用string.Concat。请注意,C#插值字符串并不总是string.Format的快捷方式,如果可以的话,它们只是使用string.Concat
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