0

有没有办法在没有连接的情况下将声明的字符串放在 unicode 符号之间?例如,我声明了一个字符串a = "house"。无论如何我可以声明<\house/>而不必结果"<\\" + a + "/>"?当涉及更多 unicode 符号时,连接可能会变得很麻烦。

4

2 回答 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."

docs.python.org - 字符串格式语法

如果你需要更强大的东西,你可以使用模板引擎。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 回答