Как перевести текст на новую строку в Python

Символ новой строки используется в Python, чтобы отмечать конец одной строки и начало новой. Важно понимать, как использовать его для вывода в консоль и работы с файлами.

В этом материале речь пойдет о следующем:

  • Как определять символ новой строки в Python.
  • Как использовать символ новой строки в строках и инструкциях вывода.
  • Вывод текста без добавления символа новой строки в конце.

Символ новой строки

Символ новой строки в Python выглядит так \n. Он состоит из двух символов:

  • Обратной косой черты.
  • Символа n (в нижнем регистре).

Если встретили этот символ в строке, то знайте, что он указывает на то, что текущая строка заканчивается здесь, а новая начинается сразу после нее.

>>> print("Hello\nWorld!")
Hello
World!

Его же можно использовать в f-строках: print(f"Hello\nWorld!").

Символ новой строки в print

По умолчанию инструкции вывода добавляют символ новой строки «за кулисами» в конце строки. Вот так:

Символ новой строки в print

Это поведение описано в документации Python. Значение параметра end встроенной функции print по умолчанию — \n. Именно таким образом символ новой строки добавляется в конце строки.

Вот определение функции:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

Значением end='\n', поэтому именно этот символ будет добавлен к строке.

Если использовать только одну инструкцию print, то на такое поведение можно и не обратить внимание, потому что будет выведена лишь одна строка. Но если использовать сразу несколько таких инструкций:


print("Hello, World 1!")
print("Hello, World 2!")
print("Hello, World 3!")
print("Hello, World 4!")

Вывод будет разбит на несколько строк, потому что символ \n добавится «за кулисами» в конце каждой строки:

Hello, World 1!
Hello, World 2!
Hello, World 3!
Hello, World 4!

Как использовать print без символа новой строки

Изменить поведение по умолчанию можно, изменив значение параметра end в функции print. В этом примере настройки по умолчанию приведут к такому результату:


>>> print("Hello")
>>> print("World")
Hello
World

Но если указать значением end пробел (" "), то этот он будет добавлен в конце строки вместо \n, поэтому вывод отобразится на одной строке:


>>> print("Hello", end=" ")
>>> print("World")
Hello World

Это можно использовать, например, для вывода последовательности значений в одной строке, как здесь:


for i in range(15):
if i < 14:
print(i, end=", ")
else:
print(i)

Вывод будет такой:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14

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

Таким же образом можно использовать print для вывода значений итерируемого объекта в одну строку:


data = [1, 2, 3, 4, 5]

for num in range(len(data)):
print(data[num], end=" ")

Вывод:

1 2 3 4 5 

Для вывода всех элементов списка списка , лучше использовать join: " ".join([str(i) for i in data])

Символ новой строки в файлах

Символ новой строки можно найти и в файлах, но он «скрыт». Создадим файл с именами. Каждое имя будет на новой строке.


names = ['Petr', 'Dima', 'Artem', 'Ivan']

with open("names.txt", "w") as f:
for name in names[:-1]:
f.write(f"{name}\n")
f.write(names[-1])

Если в текстовом файле есть разделение на несколько строк, то это значит, что в конце предыдущей символ \n. Проверить это можно с помощью функции .readlines():


with open("names.txt", "r") as f:
print(f.readlines())

Вывод:

['Petr\n', 'Dima\n', 'Artem\n', 'Ivan']

Так, первые три строки текстового файла заканчиваются символом новой строки \n, которая работает «за кулисами».

Выводы

  • Символ новой строки в Python — это \n. Он используется для обозначения окончания строки текста.
  • Вывести текст без добавления новой строки можно с помощью параметра end ="<character>", где <character> — это символ, который дальше будет использоваться для разделения строк.