- Питон: Как печатать без новой строки или пробела
- Вступление
- Печать без новой строки
- Печать без новой строки в Python 2.X
- Использование stdout.писать()
- Вывод
- Как перевести текст на новую строку в Python
- Символ новой строки
- Символ новой строки в print
- Как печатать без перевода строки или пробела?
- 20 ответов
- Python 2.6 и 2.7
- Вывод без новой строки или пробела в Python
- Введение
- Печать без новой строки
- Печать без новой строки в Python 2.X
- Использование stdout.write
- Заключение
Питон: Как печатать без новой строки или пробела
В этом уроке мы рассмотрим, как печатать без новой строки или пробела в Python, используя функции print() и write (), на примерах.
Вступление
Функция print() в Python добавляет новую строку к выходным данным при отображении на tty (teletypewriter A. K. A the terminal). Если вы не хотите, чтобы ваше сообщение отображалось с новыми строками или пробелами, как вы можете изменить поведение 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:
Интерпретатор выдаст следующее:
Мы печатаем две строки, поэтому Python будет использовать значение sep , пустое пространство по умолчанию, чтобы напечатать их вместе. Python также добавляет символ новой строки в конце, поэтому приглашение интерпретатора переходит в конечную строку.
Теперь измените предыдущее утверждение так, чтобы оно выглядело следующим образом:
Выполнив его в интерпретаторе, вы получите результат, напоминающий:
Здесь произошли две вещи – разделитель между двумя строками теперь также включает точку с запятой. Приглашение интерпретатора также появляется в той же строке, потому что мы удалили автоматически добавляемый символ новой строки.
Печать без новой строки в Python 2.X
Для более ранних версий Python – меньше 3, но больше 2.6 – вы можете импортировать print_function из модуля __future__ . Это переопределит существующее ключевое слово print с помощью функции print () , как показано ниже:
Это также даст результат:
Вот как вы можете использовать функцию Python версии 3 print() в Python 2.x.
Использование stdout.писать()
Модуль sys имеет встроенные функции для записи непосредственно в файл или tty . Эта функция доступна для версий Python 2.x и 3.x. Мы можем использовать метод write() объекта stdout модуля sys для печати на консоли следующим образом:
Давайте выполним это и посмотрим на результат:
Хотя это дает результат того, чего мы пытаемся достичь, существует довольно много различий между функцией write() и функцией print () . Функция print() может печатать несколько значений одновременно, может принимать нестроковые значения и более дружелюбна к разработчикам.
Вывод
В этой статье мы рассмотрели различные способы печати значений без возврата символа новой строки/каретки. Эта стратегия может оказаться весьма полезной при печати элементов в выходных данных алгоритмов, таких как двоичное дерево или печать содержимого списка рядом друг с другом.
Источник
Как перевести текст на новую строку в Python
Символ новой строки используется в Python, чтобы отмечать конец одной строки и начало новой. Важно понимать, как использовать его для вывода в консоль и работы с файлами.
В этом материале речь пойдет о следующем:
- Как определять символ новой строки в Python.
- Как использовать символ новой строки в строках и инструкциях вывода.
- Вывод текста без добавления символа новой строки в конце.
Символ новой строки
Символ новой строки в Python выглядит так \n . Он состоит из двух символов:
- Обратной косой черты.
- Символа n (в нижнем регистре).
Если встретили этот символ в строке, то знайте, что он указывает на то, что текущая строка заканчивается здесь, а новая начинается сразу после нее.
Его же можно использовать в f-строках: print(f»Hello\nWorld!») .
Символ новой строки в print
По умолчанию инструкции вывода добавляют символ новой строки «за кулисами» в конце строки. Вот так:
Это поведение описано в документации Python. Значение параметра end встроенной функции print по умолчанию — \n . Именно таким образом символ новой строки добавляется в конце строки.
Вот определение функции:
Значением end=’\n’ , поэтому именно этот символ будет добавлен к строке.
Если использовать только одну инструкцию print , то на такое поведение можно и не обратить внимание, потому что будет выведена лишь одна строка. Но если использовать сразу несколько таких инструкций:
Источник
Как печатать без перевода строки или пробела?
Я хотел бы сделать это в python. Что я хотел бы сделать в этом примере в c :
В Python print добавит \n или пробел, как я могу избежать этого? Теперь это просто пример, не говорите мне, что я могу сначала создать строку, а затем распечатать ее. Я хотел бы знать, как «добавлять» строки в stdout .
20 ответов
В Python 3 вы можете использовать параметры sep= и end= для print функция:
Чтобы не добавлять новую строку в конец строки:
Чтобы не добавлять пробел между всеми аргументами функции, которые вы хотите вывести:
Вы можете передать любую строку любому параметру, и вы можете использовать оба параметра одновременно.
Если у вас возникли проблемы с буферизацией, вы можете очистить вывод, добавив flush=True аргумент ключевого слова:
Python 2.6 и 2.7
Из Python 2.6 вы можете импортировать функцию print из Python 3, используя << X1>> модуль:
Который позволяет использовать решение Python 3, описанное выше.
Однако обратите внимание, что ключевое слово flush недоступно в версии функции print , импортированной из __future__ в Python 2; он работает только в Python 3, а точнее 3.3 и позже. В более ранних версиях вам все равно нужно будет выполнить сброс вручную с помощью вызова sys.stdout.flush() . Вам также нужно будет переписать все другие операторы печати в файле, где вы выполняете этот импорт.
Или вы можете использовать sys.stdout.write()
Вам также может понадобиться позвонить
Чтобы гарантировать, что stdout немедленно сбрасывается.
Примечание. Раньше заголовок этого вопроса звучал примерно так: «Как напечатать на python?»
Поскольку люди могут приходить сюда в поисках по названию, Python также поддерживает подстановку в стиле printf:
И вы можете умножить строковые значения:
Ты можешь попробовать:
. вам не нужно импортировать любую библиотеку. Просто используйте символ удаления:
Это удаляет символ новой строки и пробел (^ _ ^) *
Используйте функцию печати в стиле python3 для python2.6 + (также нарушит все существующие операторы печати с ключевыми словами в том же файле.)
Чтобы не испортить все ключевые слова печати python2, создайте отдельный файл printf.py
Затем используйте его в своем файле
Больше примеров, показывающих стиль printf
Использование functools.partial для создания новой функции с именем printf
Простой способ обернуть функцию с параметрами по умолчанию.
Это должно быть так просто, как описано по этой ссылке Гвидо Ван Россумом:
Re: Как один печатать без к / р?
Можно ли что-то напечатать, но к нему автоматически не добавляется возврат каретки?
Да, добавьте запятую после последнего аргумента для печати. Например, этот цикл печатает числа 0..9 в строке, разделенной пробелами. Обратите внимание на «print» без параметров, который добавляет последний перевод строки:
Или иметь такую функцию:
Вы можете сделать то же самое в python3 следующим образом:
И выполните его с помощью python filename.py или python3 filename.py
Новая (начиная с Python 3.0) функция print имеет необязательный параметр end , который позволяет изменять конечный символ. Также есть sep для разделителя.
Как печатать на одной строке:
Вы можете просто добавить , в конец функции print , чтобы она не печаталась на новой строке.
У меня недавно была такая же проблема ..
Я решил это, сделав:
Это работает как на Unix, так и на Windows . не проверял его на Macosx .
Есть два основных способа сделать это:
Печать без перевода строки в Python 3.x
Ничего не добавляйте после оператора print и удаляйте ‘\ n’, используя end=» как:
Еще один пример в цикле :
Печать без перевода строки в Python 2.x
Добавление запятой в конце говорит, что после печати игнорировать \n .
Еще один пример в цикле :
Надеюсь, что это поможет вам. Вы можете посетить эту ссылку.
В Python 3+ print является функцией. Когда вы звоните
Python переводит это
Вы можете изменить end на любое другое.
Вы хотите напечатать что-нибудь в for for right, но вы не хотите, чтобы это печаталось в новой строке каждый раз, например
Но вы хотите, чтобы это печаталось так: привет привет привет привет привет привет . просто добавьте запятую после печати «привет»
for i in range (0,5): print «hi», OUTPUT: hi hi hi hi hi
Это работало как в 2.7.8, так и в 2.5.2 (терминал Canopy и OSX соответственно) — не требуется импорт модуля или перемещение во времени.
Вы заметите, что все вышеприведенные ответы верны. Но я хотел сделать ярлык, чтобы всегда писать параметр «end = »» в конце.
Вы можете определить функцию как
Было бы принять все количество параметров. Даже он будет принимать все другие параметры, такие как file, flush и т. Д. И с тем же именем.
Многие из этих ответов кажутся немного сложными. В Python 3.X вы просто делаете это,
По умолчанию значение end равно «\ n». Мы просто меняем его на пробел, или вы также можете использовать end = «».
@lenooh удовлетворил мой запрос. Я обнаружил эту статью во время поиска ‘python suppress newline’. Я использую IDLE3 на Raspberry Pi для разработки Python 3.2 для PuTTY. Я хотел создать индикатор выполнения в командной строке PuTTY. Я не хотел, чтобы страница прокручивалась. Я хотел, чтобы горизонтальная линия убедила пользователя в том, что программа не остановилась и не была отправлена на ланч по бесконечной бесконечной петле — как призыв «оставить меня, у меня все хорошо, но это может занять некоторое время. интерактивное сообщение — как индикатор выполнения в тексте.
print(‘Skimming for’, search_string, ‘\b! .001’, end=») инициализирует сообщение, подготавливая его к следующей записи на экране, которая напечатает три пробела в виде ⌫⌫⌫ rubout, а затем точку, стирая «001» и расширяя линию периодов. После того, как search_string попугает пользовательский ввод, \b! обрезает восклицательный знак моего search_string текста над пробелом, который print() вызывает в противном случае, правильно помещая пунктуацию. Затем следует пробел и первая «точка» «индикатора выполнения», который я моделирую. Излишне, сообщение также тогда заполняется номером страницы (отформатированный в длину три с ведущими нулями), чтобы заметить от пользователя, что прогресс обрабатывается и который также будет отражать количество периодов, которые мы позже построим к право.
Мясо индикатора выполнения находится в строке sys.stdout.write(‘\b\b\b.’+format(page, ’03’)) . Сначала, чтобы стереть влево, он создает резервную копию курсора над тремя числовыми символами с помощью ‘\ b \ b \ b’ в виде ⌫⌫⌫ Rubout и сбрасывает новый период, чтобы добавить к длине индикатора выполнения. Затем он записывает три цифры страницы, до которой он дошел. Поскольку sys.stdout.write() ожидает закрытия полного буфера или выходного канала, sys.stdout.flush() вызывает немедленную запись. sys.stdout.flush() встроен в конец print() , который обходит с помощью print(txt, end=» ) . Затем код выполняет циклические операции, требующие больших затрат времени, пока ничего не печатает, пока не вернется сюда, чтобы стереть три цифры назад, добавить точку и снова написать три цифры, с приращением.
Три цифры, вытертые и переписанные, ни в коем случае не являются необходимыми — это просто процветание, которое иллюстрирует sys.stdout.write() против print() . Вы также можете легко заштриховать точку и забыть о трех причудливых обратных символах backslash-b ((разумеется, не записывая и отформатированное количество страниц), просто печатая строку периода длиннее на единицу каждый раз — без пробелов или новых строк, используя только sys.stdout.write(‘.’); sys.stdout.flush() пара.
Обратите внимание, что оболочка Python Raspberry Pi IDLE3 не обрабатывает возврат на одну позицию как ⌫ rubout, а вместо этого печатает пробел, создавая вместо этого видимый список дробей.
Источник
Вывод без новой строки или пробела в Python
Сегодня я рассмотрю различные способы печати значений без возврата символа новой строки или каретки. Это очень полезная статья!
Введение
Функция 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:
Интерпретатор выдаст следующее:
Мы печатаем две строки, поэтому Python будет использовать значение «sep», пустое пространство по умолчанию, чтобы напечатать их вместе. Python также добавляет символ новой строки в конце, поэтому приглашение интерпретатора переходит в конечную строку.
Теперь измените предыдущее утверждение так, чтобы оно выглядело следующим образом:
Выполнив его в интерпретаторе, вы получите результат, напоминающий:
Здесь произошло следующее: разделитель между двумя строками теперь также включает точку с запятой. Приглашение интерпретатора также появляется в той же строке, потому что мы удалили автоматически добавляемый символ новой строки.
Печать без новой строки в Python 2.X
Для более ранних версий Python (старше 3, но больше 2.6), вы можете импортировать print_function из модуля __future__. Это переопределит существующее ключевое слово print с помощью функции print, как показано ниже:
Вот как вы можете использовать функцию print от Python версии 3 в Python 2.x.
Использование stdout.write
Модуль sys имеет встроенные функции для записи непосредственно в файл или в TTY. Эта функция доступна для версий Python 2.x и 3.x. Мы можем использовать метод write объекта stdout модуля sys для печати на консоли следующим образом:
Хотя это дает результат того, чего мы пытаемся достичь, существует довольно много различий между функцией write и функцией print. Функция print может печатать несколько значений одновременно, может принимать нестроковые значения и более дружелюбна к разработчикам.
Заключение
В этой статье я рассмотрел различные способы печати значений без возврата символа новой строки/каретки. Эта стратегия может оказаться весьма полезной при печати элементов в выходных данных алгоритмов, таких как двоичное дерево или печать содержимого списка рядом друг с другом.
Источник