非工作示例:

print(" \{ Hello \} {0} ".format(42))

所需输出:

 {Hello} 42 

当前回答

Python 3.6+(2017)

在最近的Python版本中,可以使用f-string(另请参见PEP498)。

对于f字符串,应该使用双{{或}}

n = 42  
print(f" {{Hello}} {n} ")

产生所需的

 {Hello} 42

如果需要解析括号中的表达式而不是使用文本,则需要三组括号:

hello = "HELLO"
print(f"{{{hello.lower()}}}")

生产

{hello}

其他回答

原因是,{}是.format()的语法,因此在您的情况下.format)无法识别{Hello},因此引发了错误。

可以通过使用双花括号{{}}来覆盖它,

x = " {{ Hello }} {0} "

or

尝试%s进行文本格式化,

x = " { Hello } %s"
print x%(42)  

虽然不是更好,但仅供参考,您也可以这样做:

>>> x = '{}Hello{} {}'
>>> print x.format('{','}',42)
{Hello} 42

例如,当有人想要打印{argument}时,它会很有用。它可能比“{{}}”更可读。format(“argument”)

注意,在Python 2.7之后省略了参数位置(例如{}而不是{0})

您可以使用“引号墙”将格式化字符串部分与常规字符串部分分开。

发件人:

print(f"{Hello} {42}")

to

print("{Hello}"f" {42}")

一个更清楚的例子是

string = 10
print(f"{string} {word}")

输出:

NameError: name 'word' is not defined

现在,添加报价墙,如下所示:

string = 10
print(f"{string}"" {word}")

输出:

10 {word}

如果要仅打印大括号的一侧:

a=3
print(f'{"{"}{a}')
>>> {3

Python 3.6+(2017)

在最近的Python版本中,可以使用f-string(另请参见PEP498)。

对于f字符串,应该使用双{{或}}

n = 42  
print(f" {{Hello}} {n} ")

产生所需的

 {Hello} 42

如果需要解析括号中的表达式而不是使用文本,则需要三组括号:

hello = "HELLO"
print(f"{{{hello.lower()}}}")

生产

{hello}