嵌套占位符“{}”如何在格式语言中工作?

问题描述 投票:1回答:1

我并不完全理解格式化语言中嵌套占位符{}的工作原理。 str.format()

例:

>>> '{{{}}}{{{}}}'.format(25, 10)
'{25}{10}'
>>> '{{}}{{}}'.format(25, 10)
'{}{}'
>>> '{{{}}}{{}}'.format(25, 10)
'{25}{}'
>>> '{{{}}}{{{}}}'.format(25, 10)
'{25}{10}'
>>> '{{{{}}}}{{{}}}'.format(25, 10)
'{{}}{25}'
>>> '{{{{{}}}}}{{{}}}'.format(25, 10)
'{{25}}{10}'

有人可以逐步向我解释如何评估占位符吗?

python-3.x python-3.7
1个回答
0
投票

根据python docs https://docs.python.org/3.4/library/string.html#format-string-syntax

Format strings contain “replacement fields” surrounded by curly braces {}.  
 Anything that is not contained in braces is considered literal text, which is  
 copied unchanged to the output. If you need to include a brace character in the  
 literal text, it can be escaped by doubling: {{ and }}.

理解它的一个更简单的例子就是

>>> '{}'.format(25)
'25'
>>> '{{}}'.format(25)
'{}'
>>> '{{{}}}'.format(25)
'{25}'
>>> '{{{{}}}}'.format(25)
'{{}}'
>>> '{{{{{}}}}}'.format(25)
'{{25}}'
>>> '{{{{{{}}}}}}'.format(25)
'{{{}}}'

每当你看到偶数(n)的大括号,大括号被转义并且数字不打印,我们得到n/2大括号,但在奇数(n)的花括号,数字印在(n-1)/2花括号(基于观察)

在上面的例子中可以看到类似的想法

© www.soinside.com 2019 - 2024. All rights reserved.