Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 17, 2010 12:11:30

Nick2009
От:
Зарегистрирован: 2009-06-24
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Форматирование строк со спецсимволами

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

Второй вариант нравится больше, но с ним проблемы.
Как правильно, с синтаксической точки зрения, выполнять такое форматирование?



Офлайн

#2 Фев. 17, 2010 13:43:17

Mutagena
От:
Зарегистрирован: 2009-10-18
Сообщения: 295
Репутация: +  0  -
Профиль   Отправить e-mail  

Форматирование строк со спецсимволами

Попробуйте использовать вместо % соответствующий символ юникода в формате \uhhhh.

И кстати, не в ту ветку форума пишите :)



Отредактировано (Фев. 17, 2010 13:43:57)

Офлайн

#3 Фев. 17, 2010 14:14:07

Nik
От:
Зарегистрирован: 2010-01-10
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Форматирование строк со спецсимволами

>>> print "%%%%%s%%%%" % "значение"
%%значение%%
Никаких проблем… Каждый % необходимо просто удваивать.



Офлайн

#4 Фев. 17, 2010 14:18:00

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Форматирование строк со спецсимволами

Чтобы получить один % используйте два в строке форматирования.
Вот этот код выводит 2 одинаковые строки:

#!/usr/bin/python
# coding=utf8
x = "значение"
y = "'%%%%%s%%%%'" % x
print y
y = "".join(["'%%",x,"%%'"])
print y



Офлайн

#5 Фев. 17, 2010 14:21:21

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Форматирование строк со спецсимволами

Nick2009
Необходимо получить такую строку “'%%значение%%'”
>>> a = 'hello'
>>> print '%%'+a+'%%'
%%hello%%

Офлайн

#6 Фев. 17, 2010 14:40:34

Nick2009
От:
Зарегистрирован: 2009-06-24
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Форматирование строк со спецсимволами

Nik
>>> print "%%%%%s%%%%" % "значение"
%%значение%%
Никаких проблем… Каждый % необходимо просто удваивать.
Опс! Спасибо. Не доглядел. Эта строка потом поступает в джанговскую функцию, которая внутри тоже пытается ее форматировать. Я удвоил один раз и успокоился, а нужно было удваивать символ столько раз через сколько вызовов форматирования он проходит.



Отредактировано (Фев. 17, 2010 14:41:15)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version