Д. П. Кириенко. Программирование на языке 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() .
МК Михаил Кузнецов автор-переводчик статьи «