Сегодня я рассмотрю различные способы печати значений без возврата символа новой строки или каретки. Это очень полезная статья!
Введение
Функция print в Python добавляет новую строку к выходным данным при отображении в терминале. Если вы не хотите, чтобы ваше сообщение отображалось с новыми строками или пробелами, то как вы можете изменить поведение функции print?
Этого можно легко достичь, изменив значения по умолчанию параметров sep и end функции print.
Печать без новой строки
До версии Python 2.x, print было зарезервированным ключевым словом, которое действует как специальный оператор. Начиная с Python версии 3.x, команда print превратилась в функцию.
Эта версия print способна принимать следующие аргументы:
Значения (value1, value2), упомянутые выше, могут быть любой строкой или любым из типов данных, таких как list, float, string и так далее. Другие аргументы включают разделитель sep, используемый для разделения значений, заданных в качестве аргументов, в то время как аргумент end по умолчанию является символом новой строки «\n». Именно по этой причине при каждом вызове функции print курсор перемещается на следующую строку.
В Python 3.x самый простой способ печати без новой строки — это установить аргумент end в виде пустой строки, то есть » «. Теперь, попробуйте выполнить следующий фрагмент кода в интерпретаторе Python:
print("I am a sentence", "I am also a sentence")
Интерпретатор выдаст следующее:
I am a sentence I am also a sentence
Мы печатаем две строки, поэтому Python будет использовать значение «sep», пустое пространство по умолчанию, чтобы напечатать их вместе. Python также добавляет символ новой строки в конце, поэтому приглашение интерпретатора переходит в конечную строку.
Теперь измените предыдущее утверждение так, чтобы оно выглядело следующим образом:
print("I am a sentence", "I am also a sentence", sep="; ", end="")
Выполнив его в интерпретаторе, вы получите результат, напоминающий:
I am a sentence; I am also a sentence
Здесь произошло следующее: разделитель между двумя строками теперь также включает точку с запятой. Приглашение интерпретатора также появляется в той же строке, потому что мы удалили автоматически добавляемый символ новой строки.
Печать без новой строки в Python 2.X
Для более ранних версий Python (старше 3, но больше 2.6), вы можете импортировать print_function из модуля __future__. Это переопределит существующее ключевое слово print с помощью функции print, как показано ниже:
from __future__ import print_function print("I am a sentence", "I am also a sentence", sep="; ", end="")
Вывод программы:
I am a sentence; I am also a sentence
Вот как вы можете использовать функцию print от Python версии 3 в Python 2.x.
Использование stdout.write
Модуль sys имеет встроенные функции для записи непосредственно в файл или в TTY. Эта функция доступна для версий Python 2.x и 3.x. Мы можем использовать метод write объекта stdout модуля sys для печати на консоли следующим образом:
import sys sys.stdout.write("I am a line")
Вывод программы:
I am a line
Хотя это дает результат того, чего мы пытаемся достичь, существует довольно много различий между функцией write и функцией print. Функция print может печатать несколько значений одновременно, может принимать нестроковые значения и более дружелюбна к разработчикам.
Заключение
В этой статье я рассмотрел различные способы печати значений без возврата символа новой строки/каретки. Эта стратегия может оказаться весьма полезной при печати элементов в выходных данных алгоритмов, таких как двоичное дерево или печать содержимого списка рядом друг с другом.
На этом всё!
Интересная статья про возможности Python, я ещё нигде такого не встречала ???
🙂