1.13. Встроенные функции
Что такое функция
Программа представляет собой последовательность выражений языка. Нередко случается, что какая-то часть программы (блок кода) неоднократно повторяется. Чтобы устранить подобного рода избыточность программного кода, используют понятие функции. Функция — это именованный блок кода, который вызывается в нужных местах программы по имени. Другими словами, функция представляет собой подпрограмму, которую можно вызвать из основной программы, причем неоднократно. Повторяющийся (да и не только) блок программного кода обычно обозначают некоторым уникальным именем, чтобы потом при необходимости обратиться к нему по этому имени. Как видно, это простая и естественная идея, направленная на облегчение реализации сложных проектов, состоящих из более простых программ.
Подпрограмма или, другими словами, функция должна быть связана (интегрирована) с основной программой, так сказать, со своим внешним окружением. С целью обеспечения взаимодействия с остальной частью программы для функции можно предусмотреть так называемые вход и выход.
Вход в функцию — это передача ей аргументов - данных, полученных во внешней части программы. Получив данные из своего внешнего окружения (внешней программы), функция должна их как-то обработать: выполнить некоторые действия, вычислить какое-то значение. Выход из функции — значение, вычисленное блоком кода данной функции и передаваемое во внешнюю часть программы. Входные данные называют параметрами, а выходные — возвращаемым значением. Впрочем, функция может и не принимать никаких параметров, а также ничего не возвращать. Что принимает в качестве параметров и что возвращает функция в результате своей работы, определяет программист, т. е. автор-разработчик программного кода.
Для вызова функции в том или ином месте программы указывают следующее выражение:
Круглые скобки после имени функции записывают независимо от того, предусмотрены для нее входные параметры или нет. Легко представить, что в некоторых ситуациях может потребоваться передать какой-то функции данные из основной программы. Но зачем функция должна что-то возвращать? Ведь она может выполнить предусмотренные действия, например, отправить данные по электронной почте, открыть или закрыть окно, отобразить картинку и т. п., а внешней программе не потребуется от нее какое-либо значение.
Результат работы функции
Если вызывающей программе ничего не требуется получить от вызванной функции, то программист может определить эту функцию как ничего не возвращающую. Иногда указывают пустое значение для возврата, обозначаемое как none. Возможны и другие варианты. Кроме того, функции, возвращающие какие-то значения, можно использовать в выражениях с операторами (например, арифметическими), а также в качестве параметров других функций. Если функция ничего не возвращает, то ее применение в выражениях с операторами обычно чревато сообщениями об ошибках.
Встроенные функции
Язык Python включает много уже определенных, т. е. встроенных в него, функций. Программист не видит их определений, они скрыты где-то в "недрах" языка. Достаточно знать, что эти функции принимают и что возвращают, то есть их интерфейс.
Ряд встроенных функций, касающихся ввода-вывода и типов данных, мы уже использовали. Это print() и range(). Перечень всех встроенных в Python функций можно найти в официальной документации по языку. В переводе на русский можно посмотреть здесь.
В этом уроке рассмотрим математические функции – abs(), round(), pow(), max(), min(), sum().
Функция abs() возвращает абсолютное значение числа:
Если требуется округлить вещественное число до определенного знака после запятой, то следует воспользоваться функцией round():
Если второй аргумент не задан, то округление идет до целого числа. Если нужно просто избавиться от дробной части без округления, следует воспользоваться функцией int():
Нередко функцию round() используют совместно с функцией print(), избегая форматирования вывода:
Кстати, вы заметили что мы добавили второй аргумент к функции print?
Функция pow() возводит в степень. Первое число – основание, второе – показатель:
То же самое можно проделать так:
Функции max() и min() находят соответственно максимальный и минимальный элемент:
Функция bin(x) Конвертирует целое число в строку с двоичным числом с префиксом "0b".
Функция hex(x) конвертирует целое число в строку с шестнадцатеричным числом с префиксом "0x".
Функция len(x) определяет длину строки:
Расширенная работа со строками
Давайте теперь попробуем немного улучшить наши навыки работы со строковым типом. Для начала, освоим операцию по сложению строк:
a='Hello'
b=' World\n'
text = a + b
print(text)
#Ответ: Hello World с переносом строки
print(len(text))
#ответ: 12
Итак, сложение работает по принципу конкатенации, то есть добавления символов второго строкового элемента в конец первого. Функция len для строк определяет длину в символах. Попробуем добавить элементарный заполнитель
*
в начало и конец произвольной строки. Только количество символов будет определяться длиной самой строки.В этом примере мы воспользовались созданием строки из символа за счет операции умножения. В переменную dots мы установили количество звёздочек, равных длине строки. Затем, мы создали объединенную строку из символов звездочки в начале и в конце искомой фразы.