<p>根据<a href="https://docs.python.org/3.6/reference/lexical_analysis.html#f-strings" rel="nofollow noreferrer">python documentation</a>:</p>
<blockquote>
<h3>2.4.3. Formatted string literals</h3>
<p><em>New in version 3.6.</em></p>
<p>A formatted string literal or f-string is a string literal that is
prefixed with <code>'f'</code> or <code>'F'</code>. These strings may contain replacement
fields, which are expressions delimited by curly braces <code>{}</code>. While
other string literals always have a constant value, formatted strings
are really expressions evaluated at run time.</p>
</blockquote>
<p>文档中有多个示例,因此我将发布其中几个示例并解释:</p>
<pre><code>name = "Fred"
f"He said his name is{name!r}."
# "He said his name is 'Fred'.
</code></pre>
<p>这里,<code>!</code>引入了一个转换字段。<code>!r</code>调用<a href="https://docs.python.org/3.6/library/functions.html#repr" rel="nofollow noreferrer">^{<cd3>}</a></p>
<blockquote>
<p>The result is then formatted using the <a href="https://docs.python.org/3.6/library/functions.html#format" rel="nofollow noreferrer"><code>format()</code></a> protocol. The format specifier is passed to the <a href="https://docs.python.org/3.6/reference/datamodel.html#object.__format__" rel="nofollow noreferrer"><code>__format__()</code></a> method of the expression or conversion result. An empty string is passed when the format specifier is omitted. The formatted result is then included in the final value of the whole string.</p>
</blockquote>
<p>由于它是使用<code>format()</code>协议格式化的,以下是其他用例:</p>
^{pr2}$
<p>偶数日期时间对象:</p>
<pre><code>today = datetime(year=2017, month=1, day=27)
f"{today:%B %d, %Y}"
# January 27, 2017
</code></pre>
<hr/>
<p>根据上面的信息,我们将其应用到您的代码中:</p>
<pre><code>f'([{string.punctuation}“”¨«»®´·º½¾¿¡§£₤‘’])'
</code></pre>
<p>上面的行将<code>string.punctuation</code>插入到该位置的字符串中。在</p>
<p><a href="https://docs.python.org/3/library/string.html#string.punctuation" rel="nofollow noreferrer">According to the docs</a>,<code>string.punctuation</code>是:</p>
<blockquote>
<p>String of ASCII characters which are considered punctuation characters in the <code>C</code> locale.</p>
</blockquote>
<p>如果您真的想深入了解这个问题:什么是<code>C</code>语言环境?在</p>
<blockquote>
<p>The C standard defines the locale as a program-wide property that may be relatively expensive to change. On top of that, some implementation are broken in such a way that frequent locale changes may cause core dumps. This makes the locale somewhat painful to use correctly.</p>
<p>Initially, when a program is started, the locale is the <code>C</code> locale, no matter what the user’s preferred locale is. </p>
</blockquote>