2012-07-01 113 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")) 

你可以用$