Экранирование: \n, \t и другие
Как вставить в строку символ, у которого нет своей клавиши — и почему написанное в коде не всегда совпадает с напечатанным на экране.
Символы, которые нельзя напечатать прямо
Иногда внутри строки нужен символ, у которого нет своей клавиши — например, «конец
строки» (перенос) или «табуляция». Для них в Python есть служебные
последовательности (escape-последовательности) — обратная косая черта
\ плюс буква:
| Пишем | Означает |
|---|---|
\n | перенос строки (new line) |
\t | табуляция (отступ) |
\\ | сама обратная косая черта |
\" | двойная кавычка внутри строки в двойных кавычках |
\' | одинарная кавычка внутри строки в одинарных кавычках |
Исходный текст vs напечатанный результат
Ключевая идея: то, что вы пишете в коде (с обратными чертами), и то, что реально печатается на экране (уже без них), — два разных текста:
print("Первая строка\nВторая строка")
# Первая строка
# Вторая строка
print("Имя:\tВозраст:")
print("Ада:\t28")
# Имя: Возраст:
# Ада: 28
Символ \n в исходном коде — это ДВА символа (косая черта и
«n»), но Python понимает их как ОДИН специальный символ «перенос строки», который при
печати превращается в настоящий перенос — на экране обратной черты уже не видно.
print().repr() — увидеть служебные символы «как есть»
repr() печатает строку так, как она выглядит в коде — со
всеми обратными чертами, а не с их результатом. Это отличный инструмент отладки, к
которому мы ещё вернёмся в разделе 8.17:
text = "Строка 1\nСтрока 2"
print(text) # печатает ДВЕ настоящие строки
print(repr(text)) # 'Строка 1\nСтрока 2' — видно \n как текст
Одной командой print() с \n выведите три строки: «Имя: Ада», «Профессия: программист», «Год: 1843».