python – How can I print literal curly-brace characters in a string and also use .format on it?
python – How can I print literal curly-brace characters in a string and also use .format on it?
You need to double the {{
and }}
:
>>> x = {{ Hello }} {0}
>>> print(x.format(42))
{ Hello } 42
Heres the relevant part of the Python documentation for 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}}
.
Python 3.6+ (2017)
In the recent versions of Python one would use f-strings (see also PEP498).
With f-strings one should use double {{
or }}
n = 42
print(f {{Hello}} {n} )
produces the desired
{Hello} 42
If you need to resolve an expression in the brackets instead of using literal text youll need three sets of brackets:
hello = HELLO
print(f{{{hello.lower()}}})
produces
{hello}
python – How can I print literal curly-brace characters in a string and also use .format on it?
You escape it by doubling the braces.
Eg:
x = {{ Hello }} {0}
print(x.format(42))