В контексте необработанной строки Python
моя версия Python:
~$ python --version
Python 2.6.6
я пробовал следовать в Python (я хочу показать все):
1: использовать в качестве escape-последовательности
>>> str('Let's Python')
"Let's Python"
2: использовать в качестве escape-последовательности
>>> 'Let's Python'
"Let's Python"
3: str()
и печать как значение не введите
>>> print 'Let's Python'
Let's Python
4: его Python необработанная строка
>>> repr('Let's Python')
'"Let's Python"'
[вопрос]
5: Python raw string
>>> print r'Let's Python'
Let's Python
6: Этого я не понимаю:
>>> r'Let's Python'
"Let's Python"
>>> r''
'\'
почему ? Зачем выводить в
5
и 6
разные?r
и repr()
это же не то же самое?
Также просьба пояснить о внутреннем представлении string
и raw strings
одинаковы или разные.
1 ответов
вы путаете необработанные строковые литералы r''
со строковыми представлениями. Есть большая разница. repr()
и r''
are не то же самое.
r''
необработанные строковые литералы создают строку так же, как и обычный строковый литерал, за исключением того, как он обрабатывает escape-коды. Результат получился еще строку Python. Можно создать те же строки, используя необработанный строковый литерал или обычную строку литерал:
>>> r'String with \n escape ignored'
'String with \n escape ignored'
>>> 'String with \n escape ignored'
'String with \n escape ignored'
когда не используется r''
raw string literal мне пришлось удвоить косую черту, чтобы избежать ее, иначе она будет интерпретироваться как символ новой строки. Мне не нужно было избегать его при использовании r''
синтаксис, потому что он не интерпретирует Escape-коды, такие как \n
на всех. The выход, результирующая строка python стоимостью, это точно то же самое:
>>> r'String with \n escape ignored' == 'String with \n escape ignored'
True
интерпретатор использует repr()
эхо этих ценностей назад к нам;представление из значения python производится:
>>> print 'String'
String
>>> print repr('String')
'String'
>>> 'String'
'String'
>>> repr('String')
"'String'"
обратите внимание, как repr()
результат включает в себя цитаты. Когда мы эхо просто repr()
строки, результат сам строка, поэтому она имеет два наборы цитат. Другой "
кавычки отмечают начало и конец результата repr()
, и содержал внутри это строковое представление строки python String
.
так r''
это синтаксис производства строки python,repr()
- это метод для создания строк, представляющих значение python. repr()
также работает на других значениях python:
>>> print repr(1)
1
>>> repr(1)
'1'
на 1
целое число представлено в виде строки '1'
(символ 1
в строке).