格式化连接的 python 字符串

Formatting a concatenated python string

似乎字符串格式不适用于连接的字符串。通过串联,占位符按字面打印:

>>> print("{}" + " OK".format("Text"))
{} OK

但是,如果没有串联,格式将按应有的方式打印:

>>> print("{} OK".format("Text"))
Text OK

旧式 % 格式也会出现同样的问题。

如果我有一个很长的多行字符串,我想在其中连接一个应该格式化的字符串,推荐的方法是什么?

你只需要修正括号:

print(("{}" + " OK").format("Text"))

您试图在进行串联之前执行 "format" 操作。您可以使用括号固定操作的优先级:

>>> the_string = ("{}" + " OK").format("Text")
>>> print(the_string)
Text OK