Найти - Пользователи
Полная версия: Форматирование строк со спецсимволами
Начало » Python для новичков » Форматирование строк со спецсимволами
1
Nick2009
Необходимо получить такую строку “'%%значение%%'”
Входные/выходные значения unicode
В этих двух вариантах получаются разные результаты.
y = “”.join() - работает правильно
y = “'%%%s%%'” % x - работает не правильно

Второй вариант нравится больше, но с ним проблемы.
Как правильно, с синтаксической точки зрения, выполнять такое форматирование?
Mutagena
Попробуйте использовать вместо % соответствующий символ юникода в формате \uhhhh.

И кстати, не в ту ветку форума пишите :)
Nik
>>> print "%%%%%s%%%%" % "значение"
%%значение%%
Никаких проблем… Каждый % необходимо просто удваивать.
Ed
Чтобы получить один % используйте два в строке форматирования.
Вот этот код выводит 2 одинаковые строки:
#!/usr/bin/python
# coding=utf8
x = "значение"
y = "'%%%%%s%%%%'" % x
print y
y = "".join(["'%%",x,"%%'"])
print y
o7412369815963
Nick2009
Необходимо получить такую строку “'%%значение%%'”
>>> a = 'hello'
>>> print '%%'+a+'%%'
%%hello%%
Nick2009
Nik
>>> print "%%%%%s%%%%" % "значение"
%%значение%%
Никаких проблем… Каждый % необходимо просто удваивать.
Опс! Спасибо. Не доглядел. Эта строка потом поступает в джанговскую функцию, которая внутри тоже пытается ее форматировать. Я удвоил один раз и успокоился, а нужно было удваивать символ столько раз через сколько вызовов форматирования он проходит.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB