使用f-string,您可以直接在字符串中填充一些变量值的"占位符"。与之相反,比如说使用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中,它是由Literal String Interpolation-PEP 498 以3.6引入的
在C#中,有$-string插值作为某些函数的简写,您可以使用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
您也可以在Javascript中的Template Literals名称下找到它。特别是,请参阅"表达式插值"一节,以获取与OP问题中的示例类似的示例。
外壳:从黑暗时代开始,外壳用于扩展双引号字符串中的参数(以及无引号参数(。
Perl:Perl有外壳的一面,至少在我购买Camel书的第一版并开始学习该语言时,它就在双引号字符串中有插值。
我认为其他人可能更具体地知道在Perl中引入字符串插值的确切日期,但我怀疑它从一开始就存在。
许多其他编程语言,特别是那些使用sigils的编程语言,都有插值的概念。