2012-07-01 200 views
0

我記得有一種簡單的方法可以很容易地在Python中將字符串段插入其他字符串,但我不記得它是如何完成的。例如,假設我編輯HTML與Python,它看起來是這樣的:Python字符串插入

<html> 
    <b>Hello, World!</b> 
    <b>%</b> 
</html> 

所以,讓我們說這個HTML代碼存儲在一個名爲HTML的變量。現在讓我們假設我想操作這段代碼,並在第二個b標籤中輸入以下字符串「My name is Bob」,而不是%。

如果有人知道我在說什麼,請回答,這是一個非常酷的功能,我想使用。謝謝!

+6

定義模板字符串變量[「字符串格式化」(http://docs.python.org/library/stdtypes.html#string-formatting)。 –

+0

或.replace(...) – imallett

回答

1

您可以附加%和值的元組:

name = "Bob" 
html = "Hello, %s" % (name) 

或名稱的佔位符和使用字典:

html = "Hello, %(name)s" % { name: name } 

或者使用str.format()

html = "Hello, {0}".format("name") 

所有三種結果在一個字符串Hello, Bob

您也可以留下一個字符串綁定這樣

html = "Hello, %s" 

,然後綁定佔位符必要時

print html 
>>> Hello, %s 
for name in ["John", "Bob", "Alice"]: 
    print html % name 
>>> Hello, John 
>>> Hello, Bob 
>>> Hello, Alice 
+0

.format()的插入字符串序號從0開始,因此示例應該是'html =「Hello,{0}」。format(「name」)'。 –

+0

@Myk:當然。感謝您的發現。 – Junuxx

1
html='''<html> 
    <b>Hello, World!</b> 
    <b>%s</b> 
</html>''' % "My name is Bob" 

它是簡單的字符串格式化。您也可以使用下面的(你可以使用{variable}多次插入它在多個地方):

html='''<html> 
    <b>Hello, World!</b> 
    <b>{variable}</b> 
</html>'''.format(variable="My name is Bob") 

您可以使用下面的,如果你想在更換每一個「%」:

html='''<html> 
    <b>Hello, World!</b> 
    <b>%</b> 
</html>'''.replace('%','Hello my name is Bob') 
1

有使用字符串模板

一個簡單的方法有一個示例代碼

import string 

htmlTemplate = string.Template(
""" 
<html> 
<b>Hello, World!</b> 
<b>$variable</b> 
</html> 
""") 

print htmlTemplate.substitute(dict(variable="This is the string template")) 

你可以用$