DamiRocK

Python: перевод строки \n и буквальная запись обратного слеша

Одним print() выводим двухстрочную подсказку, в которой \n встречается и как текст, и как настоящий перенос. Проверяем экранирование по слоям.

Один символ в записи из двух

В обычном строковом литерале \n обозначает перевод строки. В исходном коде видны обратный слеш и буква n, но после разбора это один управляющий символ. Чтобы сохранить именно два видимых символа, слеш нужно экранировать: \\n.

Задание источника

Выведите одним вызовом print():

Use "\n" to separate lines
Example: print("line1\nline2")

Внутри каждой строки последовательность \n должна остаться буквальным текстом. Настоящий перенос нужен только между двумя предложениями.

Решение

print('Use "\\n" to separate lines\nExample: print("line1\\nline2")')

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

Дополнительный перенос print()

Сам print() по умолчанию завершает вывод переводом строки. Поэтому print("\n") выводит два последовательных переноса, а не один. В иллюстрации исходного урока это показано неточно; здесь различие отмечено явно.

Если в конце текста уже есть \n, вызов print() добавит ещё один перевод строки. Для точного вывода нужно учитывать и содержимое аргумента, и завершающий символ функции.

Как отлаживать

Разделите вопрос на два слоя: какие символы записаны в файле программы и какие символы должны оказаться в результирующей строке. Лишний слеш оставит управляющую последовательность видимой, недостающий превратит её в действие форматирования.

Hexlet / Code Basics и участники · Исходный урок и решение · GNU AGPL v3. Решение сохранено; число переносов уточнено.

Reading preferences

Appearance
Contrast
More options

Saved only in this browser. Your device’s reduced-motion setting is always respected. Browser zoom works throughout the site.