我并不完全理解格式化语言中嵌套占位符{}的工作原理。 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 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
花括号(基于观察)
在上面的例子中可以看到类似的想法