/
Программирование
/
Курс Python
/

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

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

Допустим, мы хотим вывести текст ниже в две строчки.

- Are you hungry?
- Aaaarrrgh!

Если мы просто передадим этот текст в print(), то Python напечатает все в одну строчку. Технически можно написать два подряд идущих print(), но представим что мы хотим это сделать с помощью одного.

print("- Are you hungry?- Aaaarrrgh!")
# => - Are you hungry?- Aaaarrrgh!

Чтобы каждая из них начиналась с новой строки, нужно добавить перевод строки, то есть "нажать Enter". В программировании это реализуется через добавление специальных символов, в данном случае \n. Да, это не опечатка. Несмотря на то, что мы видим здесь два символа, с точки зрения Python это один символ.

print("- Are you hungry?\n- Aaaarrrgh!")

Результат будет таким.

- Are you hungry?
- Aaaarrrgh!

Что такое \n?

\n является управляющей последовательностью (англ. escape sequence, иногда говорят "экранированная последовательность"). Она обозначает перевод строки, но не отображается напрямую. Вы не увидите \n в выводе программы, так как она влияет только на расположение текста.

В текстовых редакторах при нажатии Enter добавляется невидимый символ LF (Line Feed). Именно его и означает \n. Иногда такие символы можно увидеть, если включить отображение спецсимволов.

- Привет!¶
- О, привет!¶
- Как дела?

Принтеры, редакторы и интерпретаторы Python понимают \n как команду начать строку с новой строки.

Примеры использования \n

Вот как Python обрабатывает управляющую последовательность \n.

В коде       'Hello\nWorld'
                   ↓
На экране    Hello
             World

Местоположение \n меняет итоговый вывод.

print("Hello\nWorld")
# Hello
# World

print("Hello \nWorld")
# Hello 
# World  (в конце первой строки есть пробел)

print("Hello\n World")
# Hello
#  World  (во второй строке в начале пробел)

print("Hello\n\nWorld")
# Hello
#
# World  (пустая строка между ними)

Пробелы до или после \n также учитываются. Python воспринимает их как обычные символы и отображает в выводе.

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

print("First line")
print("\n")         # Просто пустая строка
print("Second line")

Результат будет таким.

First line

Second line

Как вывести сам символ \n

\n в Python является управляющей последовательностью. Она управляет расположением текста и не выводится на экран как обычные символы. Если вам нужно вывести именно символы \ и n, а не перевод строки, их нужно экранировать. Для этого перед обратным слешем добавляют еще один слеш.

print("Hello\\nWorld")
# Hello\nWorld

# Если забыть указать второй слеш
print("Hello\nWorld")
# Hello
# World

В этом случае Python понимает \\ как обычный обратный слеш и показывает строку без перевода строки.

Другие управляющие последовательности

Кроме \n, в Python есть и другие управляющие последовательности.

  • \t обозначает табуляцию (эквивалент клавиши Tab).
  • \r обозначает возврат каретки (используется в Windows, но редко применяется в Python-коде).
  • В программировании чаще всего используют именно \n, его достаточно для большинства задач.

Важные детали

  • \n является одним символом, несмотря на то, что в коде он записан как два (\ и n).
  • На Windows по умолчанию используется комбинация \r\n, но в Python (и вообще в кроссплатформенной разработке) принято использовать только \n, чтобы избежать проблем при переносе кода между системами.

Задание

Вы пишете программу, которая показывает пользователю подсказку о том, как разбить текст на строки. Выведите подсказку одним вызовом print():

Для разделения строк используйте "\n"
Пример: print("строка1\nстрока2")

Обратите внимание: \n в первой строке — это буквальный текст, а не перевод строки.

Полезное

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются