1

我尝试在 python 中使用 locals() 用变量替换字符串,但我可以找到一种方法在字符串中使用%字符而不会出错。这是一个具体的例子:

color = colors_generator() #the function return a color

html = """<html><head>
<style>#square{color:%(color)s;width:100%;height:100%;}</style>    
</head>    <body>  <div id="square">  </div>
</body></html>""" % locals()

print "Content-Type: text/html\n"    
print html

结果 :TypeError: not enough arguments for format string

问题是100%中的%字符。我怎么能逃脱它?

4

2 回答 2

4

用 % 转义 %

html = """<html><head>
<style>#square{color:%(color)s;width:100%%;height:100%%;}</style>    
</head>    <body>  <div id="square">  </div>
</body></html>""" % locals()
于 2011-01-19T20:44:57.777 回答
1

Virhilo 已经回答了你的直接问题,但是如果你发现你正在构建相当大/复杂的模板,那么可能值得看看一个完整的模板引擎:

于 2011-01-19T20:48:36.150 回答