Зарегистрируйтесь, чтобы продолжить обучение

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

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

- Are you hungry?
- Aaaarrrgh!

Если мы просто передадим этот текст в print(), то Python напечатает все в одну строчку:

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

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

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

Результат:

- Are you hungry?
- Aaaarrrgh!

Что такое \n?

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

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

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

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

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

Местоположение \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, чтобы избежать проблем при переносе кода между системами.

Дополнительные материалы

  1. История перевода строки

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff