«%» Символ вызывает ошибку в замене строк местными жителями ()

StackOverflow https://stackoverflow.com/questions/4740484

Вопрос

Я стараюсь заменить строки переменными с использованием местных жителей () в Python, но я могу найти способ использовать % символ внутри строки без ошибок. Вот конкретный пример:

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%. Анкет Как я могу избежать этого?

Это было полезно?

Решение

сбежать % с %

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

Другие советы

Virhilo уже ответил на ваш прямой вопрос, но если вы обнаружите, что строите довольно большие/сложные шаблоны, возможно, стоит посмотреть на полный шаблонный двигатель:

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top