Python

Как перенести строку в Python: \\n, print и длинные строки

Если нужно вывести текст с новой строки, используйте \n внутри строки. Это специальная последовательность, которая означает перенос строки

text = "Первая строка\nВторая строка"

print(text)

Результат:

Первая строка
Вторая строка

Важно различать две задачи: перенести строку в выводе и перенести длинный код в редакторе. Это не одно и то же

Перенос строки через \n

Самый частый способ:

print("Привет\nКак дела?")

Результат:

Привет
Как дела?

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

Несколько print вместо \n

Иногда проще написать два вызова print():

print("Привет")
print("Как дела?")

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

Привет
Как дела?

Такой вариант удобен для новичков, потому что каждая строка вывода видна отдельно. \n удобнее, когда текст хранится в одной переменной или формируется как одно сообщение

Многострочная строка через тройные кавычки

Если нужен большой текст, можно использовать тройные кавычки:

message = """Это первая строка
Это вторая строка
Это третья строка"""

print(message)

Результат:

Это первая строка
Это вторая строка
Это третья строка

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

Как собрать строку из нескольких частей

Если строка длинная в коде, но в выводе должна остаться одной строкой, можно обернуть части в скобки:

message = (
    "Это очень длинное сообщение, "
    "которое в коде удобно разбить на несколько частей, "
    "но при выводе оно останется одной строкой"
)

print(message)

Python склеит соседние строковые литералы. В выводе не будет переносов, если вы сами не добавили \n

Как перенести длинное выражение

Для длинных выражений лучше использовать скобки:

total = (
    100
    + 200
    + 300
)

print(total)

Результат:

600

Скобки помогают переносить код на несколько строк без обратного слеша. Так код легче читать и меньше риск случайной ошибки

Обратный слеш для переноса кода

В Python есть перенос строки через обратный слеш:

total = 100 + \
    200 + \
    300

print(total)

Но для новичков это не лучший стиль. Если после \ случайно окажется пробел или комментарий, можно получить ошибку. Скобки обычно безопаснее и понятнее

Перенос строки в f-строке

В f-строках \n работает так же:

name = "Динар"
score = 95

message = f"Игрок: {name}\nОчки: {score}"

print(message)

Результат:

Игрок: Динар
Очки: 95

Так удобно выводить карточки, отчеты и сообщения с несколькими полями

Как убрать лишний перенос у print

print() по умолчанию сам добавляет перенос строки в конце. Поэтому:

print("A")
print("B")

выводит:

A
B

Если нужно печатать в одну строку, используйте параметр end

print("A", end="")
print("B")

Результат:

AB

Можно поставить пробел:

print("A", end=" ")
print("B")

Результат:

A B

Мини-практика

Создайте файл new_line.py и выведите карточку пользователя:

name = "Анна"
age = 24
city = "Казань"

print(f"Имя: {name}\nВозраст: {age}\nГород: {city}")

После этого перепишите тот же вывод через три отдельных print(). Затем сделайте многострочную строку через тройные кавычки и сравните, какой вариант вам легче читать

Частые ошибки

Первая ошибка — писать /n вместо \n. Нужен обратный слеш, а не обычная косая черта

Вторая ошибка — думать, что перенос кода в редакторе автоматически добавит перенос в выводе. Если в строке нет \n или тройных кавычек, вывода на новой строке не будет

Третья ошибка — ставить обратный слеш для переноса кода там, где проще использовать скобки

Четвертая ошибка — забывать, что print() сам добавляет перенос строки в конце. Если нужно печатать без переноса, используйте end=""

Что почитать дальше по Python

Если нужен общий маршрут по теме, откройте рубрику Python. Для соседних задач пригодятся эти разборы:

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x