Уведомления

Группа в Telegram: @pythonsu

#1 Март 21, 2011 11:12:33

moro
От:
Зарегистрирован: 2011-01-27
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Как применит "r" к переменной

Всем привет.

Можно сделать вот так:

>>> "hahaha\nhaha\nhaha"
'hahaha\nhaha\nhaha'
>>> r"hahaha\nhaha\nhaha"
'hahaha\\nhaha\\nhaha'
Ворпрос в следующем: как это же самое сделать с переменной?
Вот как я пытался сделать.. Везде ошибки.
>>> s="hahaha\nhaha\nhaha"
>>> s.replace("\", "\\")
File "<stdin>", line 1
s.replace("\", "\\")
^
SyntaxError: unexpected character after line continuation character
>>> a="\\"
>>> s.replace("\", a)
File "<stdin>", line 1
s.replace("\", a)
^
SyntaxError: EOL while scanning string literal
s.replace("\\", "\\\\")
'hahaha\nhaha\nhaha'
>>> s.replace("\\", "\\\")
File "<stdin>", line 1
s.replace("\\", "\\\")
^
SyntaxError: EOL while scanning string literal
Заранее благодарю.



Отредактировано (Март 21, 2011 11:32:08)

Офлайн

#2 Март 21, 2011 12:00:37

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

Как применит "r" к переменной

>>> s = 'hahaha\nhaha\nhaha'
>>> s.replace('\n','\\n')
'hahaha\\nhaha\\nhaha'
>>> s.replace('\n',r'\n')
'hahaha\\nhaha\\nhaha'
>>>



Офлайн

#3 Март 21, 2011 12:56:47

moro
От:
Зарегистрирован: 2011-01-27
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Как применит "r" к переменной

Vader
>>> s = 'hahaha\nhaha\nhaha'
>>> s.replace('\n','\\n')
'hahaha\\nhaha\\nhaha'
>>> s.replace('\n',r'\n')
'hahaha\\nhaha\\nhaha'
>>>
А если строка вот такая?
>>> r"\a\b\c\d\e"
'\\a\\b\\c\\d\\e'
Просто я так понимаю, что для “u” есть функция unicode()
Нет ли такой функции для “r”?



Офлайн

#4 Март 21, 2011 13:00:59

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Как применит "r" к переменной

moro
Вы чем-то не тем занимаетесь.

Что вы хотите сделать? Как вы думаете что делает “r” для литералов?



Офлайн

#5 Март 21, 2011 13:17:29

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

Как применит "r" к переменной

Поддерживаю предыдущего оратора. Что вы сделать-то хотите?



Офлайн

#6 Март 21, 2011 14:34:30

moro
От:
Зарегистрирован: 2011-01-27
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Как применит "r" к переменной

Допустим есть строка

t="a\n\t\y"
Мне нужно чтобы
t[0]='a'
t[1]='\'
t[2]='n'
и т. д.
А имею:
t[0]='a'
t[1]='\n'
t[2]='\t'
В общем хочется чтобы ‘\n’, ‘\t’ (может и другие какие-то спецефические последовательности) рассматривались просто как два символа.

Как вариант можно сделать два replace. Но может ещё есть последовательности..



Офлайн

#7 Март 21, 2011 14:38:43

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Как применит "r" к переменной

Прежде чем идти дальше, ещё один вопрос.

moro
Мне нужно чтобы
Зачем?



Офлайн

#8 Март 21, 2011 14:56:23

moro
От:
Зарегистрирован: 2011-01-27
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Как применит "r" к переменной

Александр Кошелев
Прежде чем идти дальше, ещё один вопрос.
moro
Мне нужно чтобы
Зачем?
долго обьяснять..

ну вот допустим есть файл со случйным содержимым… могут встречаться комбинации \n \t и др.

мне нужно посчитать количество символов \



Офлайн

#9 Март 21, 2011 15:06:18

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Как применит "r" к переменной

moro
ну вот допустим есть файл со случйным содержимым… могут встречаться комбинации \n \t и др.

мне нужно посчитать количество символов \
Так если в файле будет именно последовательно двух символов “\” и “n”, то при прочтении этого файла вы получите именно два этих символа.

Эскейп последовательности имеют смысл и особое значение по сути только в исходном коде.



Офлайн

#10 Март 21, 2011 15:06:20

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

Как применит "r" к переменной

При чтении из файла эти символы и останутся обычными символами

>> s1=r'\n'
>> s2=s1
>> print s2
'\\n'



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version