有没有办法在没有连接的情况下将声明的字符串放在 unicode 符号之间?例如,我声明了一个字符串a = "house"
。无论如何我可以声明<\house/>
而不必结果"<\\" + a + "/>"
?当涉及更多 unicode 符号时,连接可能会变得很麻烦。
问问题
63 次
2 回答
2
字符串插值怎么样?
"<\\%s/>" % a
或多个项目:
<"\\%s %s/>" % (a, b)
也适用于字典:
"<\\%(a)s/>" % {'a': a}
Python 3.x 风格的插值是使用内置str.format
方法完成的:
"<\\{}/>".format(a)
"<\\{} {}/>".format(a, b)
"<\\{1} {0}/>".format(a, b) # => "<\\" + b + " " + a + "/>"
"<\\{a} {b}/>".format(a=a, b=b)
于 2013-10-09T18:38:57.043 回答
2
您可以使用以下str.format
方法:
a = "Hello {name}, welcome to {place}."
a.format(name="Salem", place="Tokyo") # "Hello Salem, welcome to Tokyo."
如果你需要更强大的东西,你可以使用模板引擎。Jinja2有一个简单的例子:
jinja_example.py
from jinja2 import Template template_file = Template(open("templatefile").read()) obj = [ {"name": "John", "surname": "Doe"}, {"name": "Foo", "surname": "Bar"} ] print template_file.render(data=obj)
模板文件
<html> <body> {% if data %} {% for user in data %} <h1>Hello {{ user.name }} {{ user.surname }}.</h1> {% endfor %} {% else %} <h1>Nothing found.</h1> {% endif %} </body> </html>
输出(删除了一些换行符):
$ python jinja_example.py
<html>
<body>
<h1>Hello John Doe.</h1>
<h1>Hello Foo Bar.</h1>
</body>
</html>
您可以在Python Wiki中找到大量模板引擎。
于 2013-10-09T18:39:40.790 回答