Рубрики
Без рубрики

Как печатать на одной линии в Python: Печать и записать

Как тот, кто учит много контента для начинающих программирования, я иногда спотыкаюсь на вопросы … Теги с Python, начинающими, тестированием, программированием.

Как python (14 часть серии)

Как тот, кто учит много контента на новичком программировании, я иногда наткнулся на такие вопросы, как «Как вы печатаете на одной линии в Python? «К счастью, у меня есть ответ на это!

Короче говоря, есть два основных способа печатать на одной линии в Python. Для Python 2 используйте следующий синтаксис печати: Печать “Уильямсон”, . Для Python 3 используйте следующий синтаксис печати: Печать («Провидение»,) . В противном случае проверьте оставшуюся часть статьи для обратного совместимого решения.

Проблема введения

Во многих языках программирования печать на одной линии обычно является поведением по умолчанию. Например, у Java есть две функции печати командной строки:

System.out.print();
System.out.println();

Как вы можете себе представить, по умолчанию Печать Функция в Java собирается напечатать без нового символа. Напротив, printLn Функция будет вести себя так, как Печать Функция в Python. В частности, он собирается распечатать любую строку, которую вы предоставляете на нее, за которым следует новый символ (то есть \ N ).

Конечно, если Печать Функция в Python автоматически печатает символ Newline с каждым вызовом, то нет возможности получить Java Печать поведение, верно? К счастью, это не правда! В противном случае у меня не было бы ничего, чтобы писать о нет.

Растворы

Для того, чтобы распечатать на одной линии в Python, есть несколько решений. К сожалению, не все решения работают во всех версиях Python, поэтому я предоставил три решения: один для Python 2, другой для Python 3, и окончательное решение, которое работает для обоих.

Печать на той же линии старый путь

Когда я искал решения этой проблемы, я нашел много материалов на Python 2, который быстро постепенно поглазует (надеюсь). Тем не менее, я чувствовал, что это решение было бы полезно для того, чтобы кто-нибудь еще не качал его.

Во всяком случае, когда вы печатаете что-то в Python 2, синтаксис такой же, как Python 3, но вы оставляете скобки:

print "Live PD"

Конечно, в обоих случаях поведение по умолчанию предназначено для печати с новой строкой. В результате нам нужно будет добавить умный бит синтаксиса – запятая:

print "Live PD",

Теперь функция печати должна исключать новую строку. Тем не менее, Это решение добавит дополнительное пространство до конца строки Отказ Кроме того, вы можете заметить, что это решение не печатает немедленно. Если это произойдет, вы можете позвонить в sys.stdout.flush () Отказ

Печать на той же линии с функцией записи

К счастью, мы можем преодолеть разрыв между Python 2 и 3 с использованием функции из Sys Библиотека: Напишите Отказ Эта функция работает так же, как Печать Функция, но нет неявной новой строки:

import syssys.stdout.write("Breaking Bad")

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

import sys
sys.stdout.write("Breaking Bad")
sys.stdout.flush()

В любом случае, это решение получит работу в обеих версиях Python.

Печать на той же линии новый путь

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

print("Mob Psycho 100", end="")

И это все! Вместо строки, заканчивающейся в новой строке, она закончится в пустой строке. Конечно, это решение поставляется с той же предостережением, что и другие предыдущие два решения: вам может потребоваться промыть буфер.

Представление

Как всегда, мне нравится взглянуть на все решения с точки зрения производительности. Для начала я обычно хранят каждое решение в строке. Чтобы избежать чрезмерной печати во время теста, я решил написать пустые строки:

setup="""
import sys
"""

write_solution = """
sys.stdout.write("")
"""

print_solution = """
print("", end="")
"""

К сожалению, я не смог проверить решение Python 2 в моей системе, поэтому не стесняйтесь делиться своими результатами в комментариях. Во всяком случае, я люблю использовать Время течения Библиотека для быстрого и грязного теста производительности:

>>> import timeit
>>> min(timeit.repeat(stmt=write_solution, setup=setup, repeat=10))
0.20978069999999605
>>> min(timeit.repeat(stmt=print_solution, setup=setup, repeat=10))
0.5292953999999952

Ясно, что Печать Функция имеет довольно много накладной. Другими словами, если производительность имеет значение, иди Напишите маршрут. В противном случае Печать работает отлично!

Немного повтора

Ну, вот это для этого. Проверьте блок кода ниже для списка всех решений:

# Python 2 only
print "Live PD",

# Backwards compatible (also fastest)
import sys
sys.stdout.write("Breaking Bad")

# Python 3 only
print("Mob Psycho 100", end="")

Как всегда, если вы знаете какие-либо другие способы печати на одной линии в Python, дайте нам знать в комментариях. Тем временем почему не выращивать свои знания Python со следующими статьями:

Если вам понравилась эта статья или любой из тех, которые я перечислил, рассмотрите возможность придерживаться долгосрочного срока стать членом сообщества или прыгать в списке рассылки Отказ В противном случае я ценю поддержку. Спасибо, что зашли!

Пост Как печатать на одной линии в Python: Печать и запись появился первым на Renegade Coder Отказ

Как python (14 часть серии)

Оригинал: “https://dev.to/renegadecoder94/how-to-print-on-the-same-line-in-python-print-and-write-5g6o”