“%”字符导致用 locals() 进行字符串替换时出错
我尝试在 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:格式字符串的参数不足
问题出在 100% 中的 % 字符。我怎样才能逃脱它?
I try to substitue strings with variables using locals() in python but I can find a way to use the % character inside the string without error. Here is a concrete example :
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
Result : TypeError: not enough arguments for format string
The problem is the % character in 100%. How can I escape it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
用 % 转义 %
escape % with %
Virhilo 已经回答了你的直接问题,但是如果你发现你正在构建相当大/复杂的模板,那么可能值得看看一个完整的模板引擎:
Virhilo has already answered your direct question, but if you find you are building quite big/complicated templates it might be worth looking at a full blown template engine instead: