Форум сайта python.su
Необходимо получить такую строку “'%%значение%%'”
Входные/выходные значения unicode
В этих двух вариантах получаются разные результаты.
y = “”.join() - работает правильно
y = “'%%%s%%'” % x - работает не правильно
Второй вариант нравится больше, но с ним проблемы.
Как правильно, с синтаксической точки зрения, выполнять такое форматирование?
Офлайн
Попробуйте использовать вместо % соответствующий символ юникода в формате \uhhhh.
И кстати, не в ту ветку форума пишите :)
Отредактировано (Фев. 17, 2010 13:43:57)
Офлайн
>>> print "%%%%%s%%%%" % "значение"
%%значение%%
Офлайн
Чтобы получить один % используйте два в строке форматирования.
Вот этот код выводит 2 одинаковые строки:
#!/usr/bin/python
# coding=utf8
x = "значение"
y = "'%%%%%s%%%%'" % x
print y
y = "".join(["'%%",x,"%%'"])
print y
Офлайн
Nick2009
Необходимо получить такую строку “'%%значение%%'”
>>> a = 'hello'
>>> print '%%'+a+'%%'
%%hello%%
Офлайн
NikОпс! Спасибо. Не доглядел. Эта строка потом поступает в джанговскую функцию, которая внутри тоже пытается ее форматировать. Я удвоил один раз и успокоился, а нужно было удваивать символ столько раз через сколько вызовов форматирования он проходит.Никаких проблем… Каждый % необходимо просто удваивать.>>> print "%%%%%s%%%%" % "значение"
%%значение%%
Отредактировано (Фев. 17, 2010 14:41:15)
Офлайн