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/

10-11 03:14