<story><title>Python 3.6.0 released</title><url>https://mail.python.org/pipermail/python-list/2016-December/717624.html</url></story><parent_chain><item><author>rantanplan</author><text>String interpolation isn&amp;#x27;t a new feature, you are confused.&lt;p&gt;Python just got &lt;i&gt;one more&lt;/i&gt; way of doing string interpolation.</text></item><item><author>perlgeek</author><text>As a long-time Perl developer, it&amp;#x27;s kinda amusing that &lt;i&gt;this&lt;/i&gt; is the new big Python feature now, when shells, awk, Perl, PHP and Ruby have had string interpolation for ages.&lt;p&gt;Yes, I know you can do more with format strings than plain interpolation, but that&amp;#x27;s all that the basic examples show.&lt;p&gt;(Also: Perl has allowed underscores in number literals for ages).</text></item><item><author>chrisshroba</author><text>I absolutely LOVE format strings. Whereas before, you had to format strings in one of these ways (among other more verbose ways):&lt;p&gt;&lt;pre&gt;&lt;code&gt;  &amp;quot;My name is {} and I am {} years old&amp;quot;.format(name, age)

  &amp;quot;My name is %s and I am %s years old&amp;quot; % (name, age)

  &amp;quot;My name is {name} and I am {age} years old&amp;quot;.format(name=name, age=age)
&lt;/code&gt;&lt;/pre&gt;
Now, we can finally use f-strings, where anything in brackets is eval&amp;#x27;ed, with the result subbed in:&lt;p&gt;&lt;pre&gt;&lt;code&gt;  f&amp;quot;My name is {name} and I am {age} years old.&amp;quot;&lt;/code&gt;&lt;/pre&gt;</text></item></parent_chain><comment><author>cstrahan</author><text>I believe that, when most people say &amp;quot;string interpolation&amp;quot;, they mean &amp;quot;first class string interpolation syntax&amp;quot;, as opposed to the use of function invocation. I don&amp;#x27;t have citations, but I hope this perspective helps in some way.</text></comment>
<story><title>Python 3.6.0 released</title><url>https://mail.python.org/pipermail/python-list/2016-December/717624.html</url></story><parent_chain><item><author>rantanplan</author><text>String interpolation isn&amp;#x27;t a new feature, you are confused.&lt;p&gt;Python just got &lt;i&gt;one more&lt;/i&gt; way of doing string interpolation.</text></item><item><author>perlgeek</author><text>As a long-time Perl developer, it&amp;#x27;s kinda amusing that &lt;i&gt;this&lt;/i&gt; is the new big Python feature now, when shells, awk, Perl, PHP and Ruby have had string interpolation for ages.&lt;p&gt;Yes, I know you can do more with format strings than plain interpolation, but that&amp;#x27;s all that the basic examples show.&lt;p&gt;(Also: Perl has allowed underscores in number literals for ages).</text></item><item><author>chrisshroba</author><text>I absolutely LOVE format strings. Whereas before, you had to format strings in one of these ways (among other more verbose ways):&lt;p&gt;&lt;pre&gt;&lt;code&gt;  &amp;quot;My name is {} and I am {} years old&amp;quot;.format(name, age)

  &amp;quot;My name is %s and I am %s years old&amp;quot; % (name, age)

  &amp;quot;My name is {name} and I am {age} years old&amp;quot;.format(name=name, age=age)
&lt;/code&gt;&lt;/pre&gt;
Now, we can finally use f-strings, where anything in brackets is eval&amp;#x27;ed, with the result subbed in:&lt;p&gt;&lt;pre&gt;&lt;code&gt;  f&amp;quot;My name is {name} and I am {age} years old.&amp;quot;&lt;/code&gt;&lt;/pre&gt;</text></item></parent_chain><comment><author>TAForObvReasons</author><text>printf-style specifiers and substitutions, like in the examples GP provided, aren&amp;#x27;t considered string interpolation.</text></comment>