f-Strings在Python 3.6中可用,对于格式化字符串非常有用:
>>> n='you'
>>> f'hello {n}, how are you?'
'hello you, how are you?'
在Python 3's f-Strings: An Improved String Formatting Syntax (Guide)中阅读有关它们的更多信息。我发现了一个有趣的模式:
确实是这样:
>>> f'{74}'
'74'
>>> f'{{74}}'
'{74}'
现在,如果我们将两个
{
传递给三个,则结果是相同的:>>> f'{{{74}}}'
'{74}' # same as f'{{74}}' !
因此,我们最多需要4个! (
{{{{
)以获取两个大括号作为输出:>>> f'{{{{74}}}}'
'{{74}}'
为什么是这样?从那时起,用两个花括号使Python需要一个额外的花括号怎么办?
最佳答案
双花括号转义了括号,因此没有插值发生:{{
➝{
和}}
➝}
。 74
保持不变,即'74'
。
与三括号相同,外部的双括号被转义。另一方面,内部括号导致值74
的常规字符串插值。
也就是说,字符串f'{{{74}}}'
等效于f'{{ {74} }}'
,但没有空格(或等效于'{' + f'{74}' + '}'
)。
在用变量替换数字常量时,您可以看到区别:
In [1]: x = 74
In [2]: f'{{x}}'
Out[2]: '{x}'
In [3]: f'{{{x}}}'
Out[3]: '{74}'
关于python - 为什么f字符串带有f'{{{74}} }' the same as f' {{74}}'?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59359911/