Что делает функция print в python
Перейти к содержимому

Что делает функция print в python

  • автор:

Д. П. Кириенко. Программирование на языке Python (школа 179 г. Москвы)

Функция print может выводить не только значения переменных, но и значения любых выражений. Например, допустима запись print(2 + 2 ** 2) . Также при помощи функции print можно выводить значение не одного, а нескольких выражений, для этого нужно перечислить их через запятую:

a = 1 b = 2 print(a, '+', b, '=', a + b)

В данном случае будет напечатан текст 1 + 2 = 3 : сначала выводится зание переменной a , затем строка из знака “+”, затем значение переменной b , затем строка из знака “=”, наконец, значение суммы a + b .

Обратите внимание, выводимые значение разделяются одним пробелом. Но такое поведение можно изменить: можно разделять выводимые значения двумя пробелами, любым другим символом, любой другой строкой, выводить их в отдельных строках или не разделять никак. Для этого нужно функции print передать специальный именованный параметр, называемый sep , равный строке, используемый в качестве разделителя (sep — аббревиатура от слова separator, т.е. разделитель). По умолчанию параметр sep равен строке из одного пробела и между значениями выводится пробел. Чтобы использовать в качестве разделителя, например, символ двоеточия нужно передать параметр sep , равный строке ‘:’ :

print(a, b, c, sep = ':')

Аналогично, для того, чтобы совсем убрать разделитель при выводе нужно передать параметр sep , равный пустой строке:

print(a, '+', b, '=', a + b, sep = '')

Для того, чтобы значения выводились с новой строке, нужно в качестве параметра sep передать строку, состоящую из специального символа новой строки, которая задается так:

print(a, b, sep = '\n')

Символ обратного слэша в текстовых строках является указанием на обозначение специального символа, в зависимости от того, какой символ записан после него. Наиболее часто употребляется символ новой строки ‘\n’ . А для того, чтобы вставить в строку сам символ обратного слэша, нужно повторить его два раза: ‘\\’ .

Вторым полезным именованным параметром функции print является параметр end , который указывает на то, что выводится после вывода всех значений, перечисленных в функции print . По умолчанию параметр end равен ‘\n’ , то есть следующий вывод будет происходить с новой строки. Этот параметр также можно исправить, например, для того, чтобы убрать все дополнительные выводимые символы можно вызывать функцию print так:

print(a, b, c, sep = '', end = '')

Функция print#

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

print(*items, sep=' ', end='\n', file=sys.stdout, flush=False) 

Функция print выводит все элементы, разделяя их значением sep, и завершает вывод значением end.

Все элементы, которые передаются как аргументы, конвертируются в строки:

In [4]: def f(a): . : return a . : In [5]: print(1, 2, f, range(10)) 1 2 function f at 0xb4de926c> range(0, 10) 

Для функций f и range результат равнозначен применению str():

In [6]: str(f) Out[6]: '' In [7]: str(range(10)) Out[7]: 'range(0, 10)' 

sep#

Параметр sep контролирует то, какой разделитель будет использоваться между элементами.

По умолчанию используется пробел:

In [8]: print(1, 2, 3) 1 2 3 

Можно изменить значение sep на любую другую строку:

In [9]: print(1, 2, 3, sep='|') 1|2|3 In [10]: print(1, 2, 3, sep='\n') 1 2 3 In [11]: print(1, 2, 3, sep=f"\n'-' * 10>\n") 1 ---------- 2 ---------- 3 

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

В некоторых ситуациях функция print может заменить метод join:

In [12]: items = [1, 2, 3, 4, 5] In [13]: print(*items, sep=', ') 1, 2, 3, 4, 5 

end#

Параметр end контролирует то, какое значение выведется после вывода всех элементов. По умолчанию используется перевод строки:

In [19]: print(1, 2, 3) 1 2 3 

Можно изменить значение end на любую другую строку:

In [20]: print(1, 2, 3, end='\n'+'-'*10) 1 2 3 ---------- 

file#

Параметр file контролирует то, куда выводятся значения функции print. По умолчанию все выводится на стандартный поток вывода — sys.stdout.

Python позволяет передавать file как аргумент любой объект с методом write(string). За счет этого с помощью print можно записывать строки в файл:

In [1]: f = open('result.txt', 'w') In [2]: for num in range(10): . : print(f'Item num>', file=f) . : In [3]: f.close() In [4]: cat result.txt Item 0 Item 1 Item 2 Item 3 Item 4 Item 5 Item 6 Item 7 Item 8 Item 9 

flush#

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

Пример скрипта, который выводит число от 0 до 10 каждую секунду (файл print_nums.py):

import time for num in range(10): print(num) time.sleep(1) 

Попробуйте запустить скрипт и убедиться, что числа выводятся раз в секунду.

Теперь, аналогичный скрипт, но числа будут выводиться в одной строке (файл print_nums_oneline.py):

import time for num in range(10): print(num, end=' ') time.sleep(1) 

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

Это связано с тем, что при выводе на стандартный поток вывода flush выполняется после перевода строки.

Чтобы скрипт отрабатывал как нужно, необходимо установить flush равным True (файл print_nums_oneline_fixed.py):

import time for num in range(10): print(num, end=' ', flush=True) time.sleep(1) 

Python: функция print и параметр end

Функция print() используется для печати сообщения на экране. Давайте поподробнее рассмотрим ее и то как с ней можно работать в этой статье!

Начнем с простого примера:

print("Hello world!") print("Hello world!") print("I\'m fine!") a = 10 b = 10.23 c = "Hello" print(a) print(b) print(c) print("Value of a = ", a) print("Value of b = ", b) print("Value of c code-block"> 
Hello world!Hello world! I'm fine! 10 10.23 Hello Value of a = 10 Value of b = 10.23 Value of c = Hello 

Смотрите выходные данные вышеприведенной программы, функция print() заканчивается новой строкой, а результат следующей функции print() - печать новой строки (следующая строка).

Параметр end в print()

end - необязательный параметр в функции print() , и его значением по умолчанию является \n , что означает, что print() по умолчанию заканчивается новой строкой. Мы можем указать любой символ / строку как конечный символ функции print() .

print("Hello friends how are you?", end = ' ') print("I am fine!", end ='#') print() # prints new line print("ABC", end='') print("PQR", end='\n') # ends with a new line print("This is line 1.", end='[END]\n') print("This is line 2.", end='[END]\n') print("This is line 3.", end='[END]\n') 

И в консоли мы получим:

Hello friends how are you? I am fine!# ABCPQR This is line 1.[END] This is line 2.[END] This is line 3.[END] 

Функции Print Python 3

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

Полный синтаксис функции print()

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

Параметры print()

  • objects – объект, который нужно вывести * обозначает, что объектов может быть несколько;
  • sep – разделяет объекты. Значение по умолчанию: ' ' ;
  • end – ставится после всех объектов;
  • file – ожидается объект с методом write ( string ). Если значение не задано, для вывода объектов используется файл sys.stdout ;
  • flush – если задано значение True , поток принудительно сбрасывается в файл. Значение по умолчанию: False .

Примечание: sep, end, file и flush — это аргументы-ключевые слова. Если хотите воспользоваться аргументом sep , используйте:

print(*objects, sep = 'separator')
print(*objects, 'separator')

Возвращаемое значение

Функция print в Python не возвращает значений; возвращает None .

Пример 1 : Как работает функция print в Python?

print("Python — это весело.")
a = 5 # Передаётся два объекта print("a highlight" data-hscroll>
Python — это весело. a = 5 a = 5 = b

В примере, приведенном выше функции print Python 3 , во всех трёх выражениях передаётся только параметр objects , поэтому:

  • Используется разделитель ' ' — обратите внимание на пробел между двумя объектами в результатах вывода;
  • В качестве параметра end используется '\n' ( символ новой строки ). Обратите внимание, что каждое выражение print выводится в новой строке;
  • file — используется файл sys.stdout . Результат выводится на экран;
  • Значение flush — False . Поток не сбрасывается принудительно.

Пример 2: функция print() с разделителем и параметром end

a = 5 print("a =", a, sep='00000', end='\n\n\n') print("a highlight" data-hscroll>
a =000005 a =05

Мы передали в программу, пример которой приведен выше, параметры sep и end .

Пример 3: функция print() с параметром file

С помощью Python print без перевода строки также можно вывести объекты в файл, указав параметр file :

sourceFile = open('python.txt', 'w') print("Круто же, правда?", file = sourceFile) sourceFile.close()

Код, приведенный выше, пытается открыть файл python.txt в режиме записи. Если файл не существует, программа создаёт файл python.txt и открывает его в режиме записи.

В примере мы передали в параметр file объект sourceFile . Объект-строка ' Круто же, правда? ' записывается в файл python.txt ( после чего можно открыть его текстовым редактором ).

В конце исполнения программы файл закрывается методом close() .

МК Михаил Кузнецов автор-переводчик статьи «

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *