gpt4 book ai didi

python - 为什么 f'{{{74}} }' the same as f' {{74}}' 带有 f 字符串?

转载 作者:行者123 更新时间:2023-12-03 05:14:34 24 4
gpt4 key购买 nike

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) 中阅读有关它们的更多信息。我发现了一个有趣的模式:

Note that using triple braces will result in there being only single braces in your string:

>>> f"{{{74}}}"
'{74}'

However, you can get more braces to show if you use more than triple braces:

>>> f"{{{{74}}}}"
'{{74}}'

情况确实如此:

>>> 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'{{{74}} }' the same as f' {{74}}' 带有 f 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59359911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com