Доброго времени суток, читатели, зрители моего канала programmer's notes.
Базовый курс по языку программирования Python закончен. Осталось сделать несколько дополнений. Сегодня первое такое дополнение. Оно будет текстовым. Да, в чем-то я буду повторяться, но "Повторение - мать учения".
О функции print()
Функция служит для вывода на консоль, так мы ее обычно и используем. Правильнее все таки было бы сказать, что эта функция выводит на стандартное устройство вывода. Используя принцип перенаправления, о чем мы скажем, в следующем дополнении, вывод можно сделать и в текстовый файл.
И так, это не большой справочник по функции print().
Функция может быть использована без параметров, тогда ее действие заключается просто в переводе строки. Иногда это весьма удобно. Если запишите команду
print('\n')
то это будет два перевода строки. Помните об этом. Это вам не printf() в C.
Функция print() может иметь две группы параметров. К первой группе параметров относятся просто выводимые данные. Ко второй группе относятся разные опция, управляющие выводом.
Выводимы данные записываются через запятую.
a = 101
b = 45.89
c = 'Начало вывода на консоль'
print(с, a, b, 32.389, 'конец вывода на консоль')
Результат выполнения фрагмента
Начало вывода на консоль 101 45.89 32.389 конец вывода на консоль
Как видим, все довольно просто.
В строковых переменных и константах могут присутствовать управляющие символы. Чаще всего используется символ '\n' - символ перевода строки.
print('q\nw\ne\nr\nt')
выводит
q
w
e
r
t
В еще одном дополнении к курсу я напишу о строках, там я также остановлюсь еще раз на управляющих символах.
Можно задавать строку, которая будет вставляться между выводимыми данными. Для этого служит опция sep.
a = 1
b = 2
c = 3
print(a, b, c, sep='***')
Результат выполнения фрагмента
1***2***3
Опцию sep часто используют при выводе коллекций. Вместо того, чтобы писать алгоритм вывода, в котором будет цикл и другие элементы, можно использовать символ звездочка и опцию sep.
ls = [2, 1, 4, 6]
print(*ls, sep='\n')
Результат выполнения фрагмента
2
1
4
6
Еще одна опция функции print() - end. Она позволяет добавлять указанную строку в конец списка вывода.
Видоизменим предыдущий фрагмент
ls = [2, 1, 4, 6]
print(*ls, sep='=\n', end='=')
Результат выполнения фрагмента
2=
1=
4=
6=
Кроме указанных опций sep и end есть также опции, позволяющие осуществлять непосредственный форматный вывод прямо в указанный файл. Но мы вернемся к этому вопросу, когда займемся файловым вводом-выводом в одном из следующих курсов.
В следующем текстовом дополнении к основному курсу мы рассмотрим строки с точки зрения того, что они могут содержать и как сделать их более удобными, в том числе и с точки зрения вывода их содержимого с помощью функции print().
По умолчанию вывод данных функцией print() осуществляется в буфер, что может давать дополнительную производительность. При его переполнении данные выводятся на устройство или в файл (указан объект-файл). Буфер также сбрасывается по окончанию работы программы. В некоторых случаях необходимо сразу выводить данные, тогда используется параметр flush:
print("Вывод минуя буфер", flush=True)
По умолчанию flush=Flase
Функция print() может выводить данные в файл не только путём перенаправления. Есть ещё один параметр file, с помощью которого можно указать объект-файл для вывода. Более подробно об этом см. здесь. По умолчанию file=sys.stdout.
Функция print() может интерпретировать выводимую строку в стиле языка C, т.е. с использованием символа '%'. Например
a = 123654
b = 23.89765437
print("Целое число: %10d, вещественное число: %12.6f" % (a, b))
Напомню смысл формата
- %10d — формат вывода целого числа. 10 означает, что общая длина выводимой строки строки-числа должна быть не меньше 10 символов. Если само число короче, то оно дополняется пробелами спереди.
- %12.6f — формат вывода вещественного числа. .6 — означает, что число округляется до 6 символов после запятой. 12 — должно быть не менее 12 символов в строке-числе. Если символов окажется меньше то слева строка дополняется пробелами.
- % (a, b) — данная конструкция указывает на то, какие значения будут выводиться в порядке слева направо. В отсутствии это добавки строка будет выведена без всякой интерпретации:
Вывод целого числа: %d, вывод вещественного числа: %1.6f
Очень, также рекомендую статью
Всего наилучшего. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.