Logo
Книга для начинающих
ВходРегистрация
/
Программирование
/
Курс 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 в первой строке — это буквальный текст, а не перевод строки.

Коммерческий опыт и Трудоустройство

Полезное

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

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

Если вы зашли в тупик, то самое время поговорить с нашим асситентом Тота во вкладке "ИИ-помощник":

Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.

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

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

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
/
Программирование
/
Курс 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 в первой строке — это буквальный текст, а не перевод строки.

Коммерческий опыт и Трудоустройство

Полезное

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

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

Если вы зашли в тупик, то самое время поговорить с нашим асситентом Тота во вкладке "ИИ-помощник":

Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.

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

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

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

Ваше упражнение проверяется по этим тестам

import runpy


def test(capsys):
    expected = 'Для разделения строк используйте "\\n"\nПример: print("строка1\\nстрока2")'
    runpy.run_module('solution')
    out, _ = capsys.readouterr()
    assert out.strip() == expected
← ПредыдущийСледующий →

Решение учителя откроется через:

20:00

waiting_clock
← ПредыдущийСледующий →