Экранирование обратного слеша python

Экранирование обратного слеша python

Сегодня я расскажу об управляющих последовательностях.

В Python используются специальные команды, которые помогают форматировать текст, выводящийся на экран. Их называют управляющие последовательности, или escape-последовательности. Иногда их называют экранирующие последовательности, так как они помогают экранировать какие-либо символы.
С двумя символами вы уже познакомились в 13 уроке – это символ \n и тройные кавычки “”” .

Практический пример

Создаем на рабочем столе файл test10.py Пишем в него руками следующий программный код:

# -*- coding: utf- 8 -*- m = u"Вчера была замечательная погода. \nСветило яркое солнце." r = u"Чтобы получить число 3, надо между числами 5 и 2 поставить знак -" k = u"Или знак \\-\\?" t = u""" Выбери верный ответ: \"Москва\" - столица. \t - Франции \t\t - Италии \t\t\t - Германии \t\t\t\t - России """ print m print r print k print t

Теперь открываем программу PowerShell и прописываем команду python desktop/test10.py

У вас должно получиться следующее:

Какие управляющие последовательности я здесь указал, и какие вам стоит запомнить еще:

\n Перенос строки на новую
\\ Экранирование обратного слэша \
\t Отступ слева
Экранирование кавычки
\’ Экранирование одинарной кавычки

То есть смотрите. Если бы я не поставил символ экранирования у кавычек «Москва», то компьютер не понял бы меня, решив, что строка должна закончиться. Но так как я экранировал кавычки, они могут показываться в тексте как часть текста, а не как окончание строки текста.

Читайте также:  Text html body bgcolor black

Домашнее задание

Перепишите указанный выше программный код с новыми данными. Запомните escape-последовательности, представленные в таблице. На самом деле их больше, но остальные вам пока не надо запоминать. Они пригодятся вам позже.

В следующем уроке мы начнем изучать интерактивный сценарий в Python 2.7 — перейти в урок 16.

  • Вы здесь:
  • Главная
  • Python 2.7 с нуля
  • Урок 15. Управляющие последовательности в Питоне

Источник

Спецсимволы, экранирование символов и raw-строки в Python

Спецсимволы, экранирование символов и raw-строки в Python

Спецсимволы — символы, которые отражают некое действие, например, символ новой строки, символ табуляции или клавиши BackSpace.

Вот основные спецсимволы Python:

список спецсимволов python

Здесь разберем самые основные, которые наиболее часто встречаются на практике.

Символ перевода строки \n

Если функция print() встречает в строке символ \n то следующий за ним текст переносится на новую строку:

s = 'Привет \n мир!' print(s) #Привет # мир!

Как видно переносится даже пробел, который идет после символа перевода строки \n .

Мы можем записать и полностью все слитно, и тогда лишних пробелов не будет:

s = 'Привет\nмир!' print(s) #Привет #мир!

Если проверить длину строки, то можно убедиться, что перенос строки является одним символом, хотя по факту состоит из двух — слеш и буква n:

s = 'Привет\nмир!' print(s) print(len(s)) #Привет #мир! #11

Слово «привет» — 6 символов, слово «мир» — 3 символа, восклицательный знак — 1 символ и перенос строки — 1 символ.

Символ табуляции \t

Если функция print() встречает в строке символ \t то следующий за ним текст сдвигается на размер табуляции:

s = 'Привет\tмир!' print(s) #Привет мир!

Символ обратного слеша \\

Этот символ нужен, когда необходимо вывести слеш в функции print() , но есть, какие либо помехи, например другие спецсимволы. А также для экранирования символов.

Например, нужно вывести такую строку Папка \name\ :

s = 'Папка с:\name\ содержит имена' print(s) #Папка с: #ame\ содержит имена

Мы получили не то, что хотели, вместо имени папки Python увидел символ переноса строки \n .

Чтобы такого не происходило нужно использовать символ обратного слеша:

s = 'Папка с:\\name\ содержит имена' print(s) #Папка с:\name\ содержит имена

Экранирование символов

Экранирование нужно для того, чтобы мы могли видеть при использовании функции print() , те данные, которые и планируем видеть.

Например, если в кавычках будут еще одни кавычки, это вызовет ошибку:

s = ‘График работы магазина ‘Фасоль’ в Краснодаре’ print(s) #Syntax Error: invalid syntax:

Для избегания этой ошибки необходимо экранировать кавычки слешем:

s = 'График работы магазина \'Фасоль\' в Краснодаре' print(s) #График работы магазина 'Фасоль' в Краснодаре

Также можно вывести кавычки внутри других кавычек, если они разные:

s = 'График работы магазина "Фасоль" в Краснодаре' print(s) #График работы магазина "Фасоль" в Краснодаре

Т.е. здесь у нас строка создается в одинарных кавычках, а в самом тексте строки используются двойные кавычки.

Таким образом, можно экранировать любые спецсимволы.

«Сырые» raw-строки в Python

Сырые или необработанные строки нужны для того, чтобы выводить строки в буквальном виде, так как они записаны.

Например, создадим строку с экранированными символами:

s = 'Папка с:\\name\\ содержит имена от \'А\' до \'Я\'' print(s) #Папка с:\name\ содержит имена от 'А' до 'Я'

Видно, что слеш, для экранирования символов не выводится.

А если мы выведем raw-строку (для этого достаточно просто добавить буку r ):

s = r'Папка с:\\name\\ содержит имена от \'А\' до \'Я\'' print(s) #Папка с:\\name\\ содержит имена от \'А\' до \'Я\'

То мы видим, что вывелись абсолютно все символы, которые есть в строке, включая слеши для экранирования.

Raw-строки очень часто используют для вывода адресов и путей к файлам, чтобы не экранировать символы.

Очищаем строки с помощью методов strip(), rstrip() и lstrip() в Python

Очищаем строки с помощью методов strip(), rstrip() и lstrip() в Python

Проверяем символы на строчность с методом islower() в Python: синтаксис, практические примеры и советы по использованию

Проверяем символы на строчность с методом islower() в Python: синтаксис, практические примеры и советы по использованию

Изучаем метод format() в Python для форматирования строк

Изучаем метод format() в Python для форматирования строк

Как подсчитать количество чисел в строке в Python: 4 простых способа

Как подсчитать количество чисел в строке в Python: 4 простых способа

Работа операторов in и not in для проверки наличия элемента в последовательности

Работа операторов in и not in для проверки наличия элемента в последовательности

Сравнение строк в Python: как это работает на примерах

Сравнение строк в Python: как это работает на примерах

Источник

Python. Строки. Экранированные последовательности. Неформатированные строки. Многострочные блоки текста

Строки. Экранированные последовательности. Неформатированные строки. Многострочные блоки текста

Поиск на других ресурсах:

1. Общая форма представления экранированной последовательности. Символ \ (обратный слеш)

Экранированные последовательности – это последовательности символов, определяющие специальные символы которые тяжело ввести с клавиатуры или отобразить на экране. К таким символам можно отнести, например, символ новой строки, символ звукового сигнала PC Speaker, символ клавиши BackSpace и прочее.

Для того, чтобы представить специальные символы используется символ \ . Общая форма представления экранированной последовательности следующая:

где символы – некоторые символы или цифры, заменяющие один символ. Этот символ имеет двоичное значение определяемое экранированной последовательностью.

2. Примеры вывода строк, содержащих экранированные последовательности

Экранированные последовательности влияют на вывод строк.

# Экранированные последовательности import math s = 'H\ne\nl\nl\no\nw\to\tr\tl\td\n' s2 = '\x23+\x25=\x28' print(s) print(s2)

После выполнения вышеприведенного кода будет получен следующий результат

3. Таблица экранированных последовательностей

В таблице приведены экранированные последовательности языка Python.

Python. Экранированные последовательности. Таблица

4. Определение длины строки, содержащей экранированную последовательность

В программе экранированная последовательность может состоять из нескольких символов. При выводе на экран эти несколько символов заменяются одним соответствующим символом.

# Экранированные последовательности - длина строки import math s = 'A\n\172' # \172 - код символа Z length = len(s) # length = 3 print(s) print('length = ',length)

В вышеприведенном коде строка

в программе имеет длину 7 символов. Реальная длина строки равна 3 символам. Это объясняется тем, что строка содержит две экранированных последовательности которые заменяются одиночными символами:

Результат выполнения программы

5. Представление символов в шестнадцатеричной и восьмеричной системах исчисления. Пример

С помощью экранированных последовательностей можно представлять символы в шестнадцатеричной и восьмеричной системах исчисления.

# Экранированные последовательности # шестнадцатеричная система исчисления s1 = '\xF5A0' # s1 = '\xf5A0' l1 = len(s1) # l1 = 3 => # восьмеричная система исчисления s2 = '\562' # s2 = 'r' - символ в восьмеричной системе исчисления l2 = len(s2) # l2 = 1 print('s1 = ', s1) print('l1 = ', l1) print('s2 = ', s2) print('l2 = ', l2)

Результат работы программы

s1 = '\xf5A0' l1 = 3 s2 = 'r' l2 = 1
6. Представление символа обратного слеша \ . Пример

Символ обратного слеша \ сохраняется в строке в том виде как есть в случае, если после символа \ нет корректного служебного символа который отображен в таблице п.3.

# Экранированные последовательности # символ обратного слеша \ s = '\error' # s = \error s = "12\3562" # s = 12o2, \356 => o s = 'c:\\myfile.txt' # s = 'c:\myfile.txt', \\=>\ s = 'c:\myfile.txt' # s = 'c:\myfile.txt'
7. Отключение механизма экранирования. Пример

При использовании экранированных последовательностей возможна ситуация, когда использование символа \ (обратный слеш) в сочетании с другими символами порождает невидимые ошибки.

Например, если в некоторую переменную s нужно записать полное имя файла, который размещается по следующему маршруту

то строка на языке Python

s = 'C:\1\textfile.txt' # s = 'C: extfile.txt'

будет содержать невидимую ошибку: переменная s равна значению

Это связано с тем, что последовательность символов \t рассматривается как один символ табуляции (см. таблицу с п. 3).

Во избежание таких негативных случаев нужно отключить (подавить) механизм экранирования. Для отключения экранированных последовательностей в строках используется следующая общая форма

то есть, перед строкой нужно поставить символ r или R .

# Экранированные последовательности. Невидимые ошибки # 1. Ошибочный код s = 'C:\1\textfile.txt' # s = 'C: extfile.txt' l = len(s) # l = 15 # 2. Отключение экранированных последовательностей: r или R # Правильный код s2 = R'C:\1\textfile.txt' # s2 = 'C:\1\textfile.txt' l2 = len(s2) print(s) print('l = ', l) print(s2) print('l2 = ', l2)

Как видно из примера, в строке s формируется ошибочное полное имя файла, а в строке s2 формируется правильное имя файла благодаря символу R перед ним.

Результат выполнения программы

C: extfile.txt l = 15 C:\1\textfile.txt l2 = 17
8. Многострочные блоки текста. Пример

С помощью тройной кавычки «»»…»»» можно формировать многострочные блоки текста.

# Экранированные последовательности # Многострочные блоки текста s = """First line, second line, third line """ s2 = """1 2 3 4""" print(s) print(s2)

Результат выполнения программы

First line, second line, third line 1 2 3 4

Связанные темы

Источник

Оцените статью