Строки. Экранированные последовательности. Неформатированные строки. Многострочные блоки текста
Содержание
- 1. Общая форма представления экранированной последовательности. Символ \ (обратный слеш)
- 2. Примеры вывода строк, содержащих экранированные последовательности
- 3. Таблица экранированных последовательностей
- 4. Определение длины строки, содержащей экранированную последовательность
- 5. Представление символов в шестнадцатеричной и восьмеричной системах исчисления. Пример
- 6. Представление символа обратного слеша \. Пример
- 7. Отключение механизма экранирования. Пример
- 8. Многострочные блоки текста. Пример
- Связанные темы
Поиск на других ресурсах:
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)
После выполнения вышеприведенного кода будет получен следующий результат
H
e
l
l
o
w o r l d
3+5=8
⇑
3. Таблица экранированных последовательностей
В таблице приведены экранированные последовательности языка Python.
⇑
4. Определение длины строки, содержащей экранированную последовательность
В программе экранированная последовательность может состоять из нескольких символов. При выводе на экран эти несколько символов заменяются одним соответствующим символом.
Пример.
# Экранированные последовательности - длина строки import math s = 'A\n\172' # \172 - код символа Z length = len(s) # length = 3 print(s) print('length = ',length)
В вышеприведенном коде строка
s = 'A\n\172'
в программе имеет длину 7 символов. Реальная длина строки равна 3 символам. Это объясняется тем, что строка содержит две экранированных последовательности которые заменяются одиночными символами:
- \n – символ новой строки;
- \172 – код символа z в восьмеричной системе исчисления.
Результат выполнения программы
A z length = 3
⇑
5. Представление символов в шестнадцатеричной и восьмеричной системах исчисления. Пример
С помощью экранированных последовательностей можно представлять символы в шестнадцатеричной и восьмеричной системах исчисления.
Пример.
# Экранированные последовательности # шестнадцатеричная система исчисления s1 = '\xF5A0' # s1 = '\xf5A0' l1 = len(s1) # l1 = 3 => { '\xf5', 'A', '0' } # восьмеричная система исчисления 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 нужно записать полное имя файла, который размещается по следующему маршруту
C:\1\textfile.txt
то строка на языке Python
s = 'C:\1\textfile.txt' # s = 'C: extfile.txt'
будет содержать невидимую ошибку: переменная s равна значению
C: extfile.txt
Это связано с тем, что последовательность символов \t рассматривается как один символ табуляции (см. таблицу с п. 3).
Во избежание таких негативных случаев нужно отключить (подавить) механизм экранирования. Для отключения экранированных последовательностей в строках используется следующая общая форма
r'строка_символов'
или
R'строка_символов'
то есть, перед строкой нужно поставить символ 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
⇑
Связанные темы
⇑