Найти тему
programmer's notes (python and more)

Программирование на языке Python. Управляющие конструкции экранирования в строках (приложение 1 к уроку 9)

Доброго времени суток, читатели, зрители моего канала programmer's notes.

Базовый курс программирования на Python | programmer's notes (python and more) | Дзен

Данная статья это приложение к уроку 9.

Управляющие структуры в строках языка Python

Обычная строка в Python это не только последовательность символов из огромного алфавита, кодируемого utf-8. В строках могут встречаться последовательности, которые определенным образом интерпретируются функциями вывода, например print(). Такие последовательности можно назвать управляющими. Есть и другое название экранированные последовательности. Эти последовательности начинаются с символа обратный слеш '\'. Количество символов, которые могут входить в эту последовательность зависит от того, что идет после обратного слеша. Если за слеш идет символ, который не входит в набор символов, используемых в экранированную последовательность, то строка выводится обычным способом, т.е. в сущности экранированная последовательность отсутствует.

s = 'qwertyui\o\p'
print(s)

Результат работы данных строк будет

qwertyui\o\p

Если обратный слеш стоит последним в строке, то это означает, что происходит перенос на другую строку. Это удобно для представления длинных строк.

s = 'q\
w\
e\
r\
t\
y\
u\
i'
print(s)

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

qwertyui

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

\" - для вывода двойных кавычек,
\' - для вывода одинарных кавычек,
\\ - для вывода обратного слеш,
\n - перевод строки (начать следующую строку),
\t - символ табуляции,
\b - backspace (стираем символ слева),
\r - перевести курсор в начало строки,
\v - вертикальная табуляция,
\a - гудок встроенного динамика,
\f - переход на следующую страницу (сейчас практически не используется),
\0 - пустой символ (null).

На самом деле все последовательности от \n до \0, это так называемые управляющие кода: \n - 10, \t - 9, \b - 8, \r - 13, \v - 11, \a - 7, \v - 11, \f - 12, \0 - 0.

s = 'qwer\tqw\nqw\bq'
print(s)

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

qwer qw
qq

(табуляция, к сожалению, здесь можно показать только одним пробелом)

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

Если за обратным слешем идет символ x, то следующие два символа интерпретируются как однобайтовое число в шестнадцатеричной системе счисления. Это число интерпретируется как ASCII символ. Если после обратного слеш идут три цифры от 0 до 7, то такое число интерпретируется в восьмеричной системе счисления.

s = '\101-\x42'
print(s)

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

A-B

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

Если после обратного слеш идет символ u, то следующие четыре символа интерпретируются как шестнадцатеричное число - код символа в utf-16.

s = 'qwerty\u500a\u500b\u500c\u500d'
print(s)

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

qwerty倊個倌倍

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

Если после обратного слеш идет символ U, то следующие четыре символа интерпретируются как шестнадцатеричное число - код символа в utf-32.

s = 'qwerty\U0000800a\U0000800b'
print(s)

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

qwerty耊耋

Экранированные последовательности с названием символа в Unicode

Если после обратного слеш стоит N, то далее в фигурных скобках должно стоять строковое название символа Unicode.

s = 'qwerty\N{Winking Face}\N{Male Sign}\N{Female Sign}'
print(s)

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

qwerty😉♂♀

programmer's notes (python and more) | Дзен

Всего наилучшего. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.

Программирование несомненно обладает  одним важным лечебным свойством - предотвращает размягчение мозга
Программирование несомненно обладает одним важным лечебным свойством - предотвращает размягчение мозга

#программирование #программисты #языки программирования #python

С подпиской рекламы не будет

Подключите Дзен Про за 159 ₽ в месяц