2015-11-23 157 views
0

似乎字符串格式不適用於連接的字符串。隨着級聯的佔位符被逐字印:格式化連接的python字符串

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

然而,無連接的格式會打印,因爲它應該:與舊式%-formatting發生

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

同樣的問題。

如果我有一個很長的多行字符串,我想連接一個應該格式化的字符串,建議的方法是什麼?

回答

2

您試圖做拼接之前執行「格式」操作。您可以使用圓括號修正操作的優先順序:

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

PEP8似乎意味着此間距是不正確的或皺眉:https://www.python.org/dev/peps/pep-0008/#whitespace-in-expressions-and-statements – dkhamrick

+0

間距不會破壞代碼,所以它不是「不正確的」 。它使代碼更易於閱讀,所以我添加了它的教學理由。如果它有助於緩解你的想法,我會進一步解壓代碼。 – Boa

0

你只需要修復的括號:

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

哦!我認爲格式函數是字符串的一種方法。我會認爲這個語法會將字符串變成一個帶有字符串的元素元組!無論如何,嘗試它,它的作品! – 00prometheus

+0

這不起作用(更新:在Python 3中) - 'print'返回'None'。 – kwinkunks

+0

爲我工作。在Python解釋器中:>>> print(「{}」+「OK」)。format(「Text」) Text OK ' – 00prometheus