Символ новой строки используется в 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> — это символ, который дальше будет использоваться для разделения строк.