Символ новой строки используется в Python, чтобы отмечать конец одной строки и начало новой. Важно понимать, как использовать его для вывода в консоль и работы с файлами.
В этом материале речь пойдет о следующем:
- Как определять символ новой строки в Python.
- Как использовать символ новой строки в строках и инструкциях вывода.
- Вывод текста без добавления символа новой строки в конце.
Символ новой строки
Символ новой строки в Python выглядит так \n
. Он состоит из двух символов:
- Обратной косой черты.
- Символа n (в нижнем регистре).
Если встретили этот символ в строке, то знайте, что он указывает на то, что текущая строка заканчивается здесь, а новая начинается сразу после нее.
>>> print("Hello\nWorld!")
Hello
World!
Его же можно использовать в f-строках: print(f"Hello\nWorld!")
.
Символ новой строки в 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>
— это символ, который дальше будет использоваться для разделения строк.