Как сделать пробел в python print

Обновлено: 08.07.2024

Если вы используете Python 3 или используете from __future__ import print_function , вы также можете использовать функцию print() и добавить ее пространство для вас:

Я установил end в пустую строку, потому что в противном случае вы также получите символ новой строки. Конечно, вам может понадобиться этот символ новой строки, если вы пишете в файл несколько имен и оценок, и каждая запись должна быть в отдельной строке.

Ответы Бхаргава и Марджина хорошие. Есть много способов сделать это. Я хотел бы добавить, что способ .format кажется немного лучше, потому что вы можете повторно использовать аргументы и лучше упорядочить свой код.

Функция Python print() используется для печати результата или вывода на экран. По умолчанию она переходит к новой строке для печати следующего оператора. Имеет заранее определенный формат для вывода на печать. Разберем на примере.

Чтобы печатать в одной строке в Python, мы можем записать утверждение полностью в одной функции print().

Функция Python print() имеет аргумент end, который предотвращает переход к новой строке. Рассмотрим следующий пример.

В приведенном выше коде мы объявили список и повторили каждый элемент, используя цикл for. Функция print() напечатала первый элемент списка, а затем напечатала конечное значение, которое мы назначили как пробел, и оно будет печататься до элемента списка.

Мы можем присвоить конец любому литералу. Давайте разберем это в следующем примере.

При разработке программ постоянно используется вывод данных в консоль. Например, при тестировании функций программы, которая ещё не обзавелась графическим интерфейсом, или как средство нахождения ошибок и отладки кода.

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

Функция print и её параметры

Функция print() включена в стандартную библиотеку языка Python, как основной инструмент для вывода данных в консоль или любое другое устройство (экран, принтер и так далее).

Программист может настраивать вывод данных, используя аргументы функции:

*objects

Это данные, которые выводятся на экран. Программист передает в функцию сколько угодно объектов, которые автоматически преобразуются в строковый формат и направляются в поток вывода.

Передавая объекты в функцию, программист может их передавать через запятую или использовать конкатенацию. Передача нескольких аргументов не приведёт к конфликту между *objects и другими необязательными аргументами, потому что интерпретатор автоматически распознаёт остальные параметры по ключевому слову (sep, end, file, flush)!

Вот пример:

Вот пример:

Вот пример скрипта на Python, который откроет файл temp.txt и запишет в него текст с помощью функции print:

flush

Аналогично и с выводом в консоль, данные записываются в буфер и выводятся из него в консоль. Если flush выставлен в True, то вывод производится немедленно.

Форматированный вывод

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

Оператор %

Оператор % часто используется для форматирования и хорошо известен не только программистам на Python, но и программистам на C/С++. По сути, оператор % — это метка, вместо которой подставляется значение переменной или выражение. Оператор % размещается непосредственно в выводимой строке, а подставляемые значения — в кортеже после второго %. Пример:

Помимо символа % указывается тип значения, а также, по желанию, длина и точность. Синтаксис выглядит так:

Если рассмотреть пример, можно увидеть, что:

Метод format

Подставляемые значения указываются в кортеже после ключевого слова format. Их можно указывать как позиционно, так и присваивать по имени. Пример:

Метод format также позволяет форматировать числа, то есть указывать их ширину и точность:

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

Строковый метод

Вывод с помощью строкового метода формируется с использованием операций среза и методов строк. Для работы со строковым типом данных создано несколько методов, которые позволяют просто и изящно форматировать вывод, среди них методы: ljust() , rjust() , center() .

centre()

Эта функция выравнивает строку по центру в соответствии с указанной шириной, заполняя недостающую ширину пробелами. Она имеет следующий синтаксис:

Здесь:

  • str — это строка, которую будем центрировать.
  • len – это ширина строки.
  • fillchr — символ, которым заполняется недостающее пространство (по умолчанию — пробел).

Пример:

Важно понимать, что функция располагает текст не в центре консоли, а в центре поля указанной ширины (в примере это 50 символов).

Если поменять символ заполнения, получится следующее:

ljust()

Метод работает аналогично centre() , только выравнивает текст не по центру, а по левому краю. То есть недостающие символы дополняются не с двух сторон, а только с правой.

rjust()

Метод работает аналогично centre() , но выравнивает текст по правому краю. То есть символы дополняются только с левой стороны.

f-строки

Поля заданной ширины

Установка ширины полей работает так:

Поля заданной ширины жизненно необходимы для вывода в консоль таблиц или двумерных массивов. Из-за разной длинный элементов столбцы искривляются, что приводит к потери читаемости, однако если использовать поля заданной ширины, то пока длинны значений меньше, чем ширина поля, все они будут располагаться строго друг под другом.

Примеры

С помощью форматированного вывода можно полностью настроить любой вывод в консоль, например:

Вывод ошибки

Вывод списка

Ниже пример того как выводится список в одну строку:

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

Вывод массива

Здесь выводим массив построчно с указанием номеров элементов.

Вывод словаря

Здесь приведём два варианта для словарей.

Простой вариант:

В виде таблицы:

Вывод матрицы

Сложность в выводе матрицы состоит в том, что из-за разных длин чисел элементы столбца будут стоять не друг под другом, а со смещением. С помощью форматирования можно решить эту проблему.

Здесь мы создали матрицу в виде двумерных списков, но если вы работаете с матрицами с помощью библиотеки NumPy, то там вывод в консоль форматируется автоматически.

Print () – наверное, самая первая команда, с которой сталкивается новичок при изучении Python с нуля. Почти все начинают с вывода на экран простого приветствия и переходят к дальнейшему изучению синтаксиса, функций и методов языка, не задумываясь о дополнительных возможностях print(). Однако в Pyt h on 3 эта команда предоставляет доступ к базовой функции вывода данных с присущими ей параметрами и возможностями. Знание этих особенностей позволит оптимизировать вывод данных для каждого конкретного случая.

Преимущества функции print () в Python 3

В третьей версии Pyt h on print () входит в базовый набор функций. При выполнении проверки type ( print ) выводится информация: class builtin _ function _ or _ method . Слово builtin указывает на то, что проверяемая функция встроенная.

В Pyt h on 3 выводимые объекты ( object s) помещают в скобках после слова print . На примере вывода традиционного приветствия это будет выглядеть так:

Для Python 3: print(‘Hello, World!’) .

В Python 2 оператор применяется без скобок: print Hello , World !’

Результат в обеих версиях будет одинаковый: Hello , World !

Если во второй версии Python значения после print поместить в скобки, тогда выведен будет кортеж – тип данных, представляющий собой неизменяемый список:

print(1, ‘first’, 2, ‘second’)

(1, ‘ first’, 2, ‘ second ‘)

При попытке убрать скобки после print в третьей версии Python, программа выдаст синтаксическую ошибку.

Особенности синтаксиса print() в Python 3

Синтаксис функции print() включает собственно объект или объекты ( objects ), которые также могут называться значениями (values) или элементами ( items ), и несколько параметров. То, как именно будут выводиться объекты, определяется четырьмя именованными аргументами: разделителем элементов (sep), строкой, выводимой после всех объектов ( end ), файлом, куда выводятся данные ( file ), и параметром, отвечающим за буферизацию вывода ( flush ).

Вызов функции возможен без указания значений параметров и даже без каких-либо объектов: print(). В этом случае задействованы параметры по умолчанию, и при отсутствии элементов выведется неотображаемый символ пустой строки – фактически, значение параметра end‘\ n . Такой вызов, к примеру, можно использовать для вертикального отступа между выводами.

В поток данных записываются все аргументы (объекты), не относящиеся к ключевым словам, преобразованные в строки, разделенные sep и завершаемые end . Аргументы параметров sep и end также имеют строковый тип, они могут не указываться при использовании дефолтных значений.

Параметр sep

Значения всех параметров print описываются в виде аргументов ключевых слов sep , end , file , flush . Если параметр sep не указывается, то применяется его дефолтное значение: sep =’ ‘, и выводимые объекты разделяются пробелами. Пример:

print (1, 2, 3)

В качестве аргумента sep можно указать другое значение, например:

print (1, 2, 3, sep=’слово-разделитель’)

1слово-разделитель2слово-разделитель3

Параметр end

one_two_three

Параметр file

fileitem = open(‘printfile.txt’,’a’)

def test(objects):

for element in objects:

print(element, file=fileitem)

fileitem.close()

test ([1 0 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 ,1])

На выходе элементы списка будут записаны в printfile . txt по одному в строке.

Параметр flush

Этот параметр имеет отношение к буферизации потока данных и, поскольку он является логическим, может принимать два значения – True и False . По умолчанию параметр отключен: flush = False . Это означает, что сохранение данных из внутреннего буфера в файл будет происходить только после закрытия файла или после непосредственного вызова flush(). Для сохранения после каждого вызова print() параметру требуется присвоить значение True:

file_flush = open(r’file_flush.txt’, ‘a’)

print(« Запись строки в файл «, file=file_flush, flush=True)

print(« Запись второй строки в файл «, file=file_flush, flush=True)

file_flush.close()

Еще один пример использования параметра flush с помощью модуля time:

В этом случае аргумент True параметра flush позволит выводить числа по одному в три секунды, в то время как по умолчанию все числа были бы выведены на экран по истечении 15 секунд. Чтобы наглядно увидеть действие параметра flush, лучше запустить скрипт в консоли. Дело в том, что при использовании некоторых веб-оболочек, в частности, Jupyter Notebook, программа реализуется иначе (без учета параметра flush ).

Вывод значений переменных с помощью print()

При выводе строки, содержащей присвоенное переменной значение, достаточно указать через запятую нужный идентификатор (имя переменной). Тип переменной указывать не следует, поскольку print преобразует данные любого типа в строки. Приведем пример:

b = ‘Python from scratch’

print(a,’– число , а ‘,b,’– строка .’)

0 – число, а Python from scratch – строка.

Еще один инструмент для передачи значений переменных на вывод – метод format. Print при этом выступает в качестве шаблона, в котором вместо имен переменных в фигурных скобках указываются индексы позиционных аргументов:

b = ‘Python from scratch’

print (‘ является числом, а – строкой.’. format ( a , b ))

0 является числом, а Python from scratch – строкой.

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

  • заполнитель %d применяют для числовых данных;
  • заполнитель %s – для строк.

b = ‘Python from scratch’

print (‘% d является числом, а % s – строкой.’%( a , b ))

0 является числом, а Python from scratch – строкой.

Print() в Python. Синтаксис, ошибки, аргументы end и sep

Заключение

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

Читайте также: