Функция - это блок организованного, многократно используемого кода, который используется для выполнения конкретного задания. Функции обеспечивают лучшую модульность приложения и значительно повышают уровень повторного использования кода.
Существуют некоторые правила для создания функций в Python.
- Блок функции начинается с ключевого слова def, после которого следуют название функции и круглые скобки ().
- Любые аргументы, которые принимает функция, должны находиться внутри этих скобок.
- После скобок идет двоеточие : и с новой строки с отступом начинается тело функции.
Функция в Python. Синтаксис.
Т. е. функция определяется следующим образом: def <имя_функции>(<аргументы функции>):.
Пример функции:
Python
def calc(a, b): print(a)
print(b)
return a + b
После создания функции, ее можно исполнять вызывая из другой функции или напрямую из оболочки Python. Для вызова функции следует ввести ее имя и добавить скобки.
Python
calc(7, 19)
Выражение return прекращает выполнение функции и возвращает указанное после выражения значение. Выражение return без аргументов - это то же самое, что и выражение return None. Соответственно, теперь становится возможным, например, присваивать результат выполнения функции какой либо переменной.
Например, создадим переменную sum и присвоим ей значение :
def calc(a, b): print(a)
print(b)
return a + b
sum = calc(21, 19)
Аргументы функции
Рассмотрим каждый из типов подробнее.
1. Обязательные аргументы
Если при создании функции мы указали количество передаваемых ей аргументов и их порядок, то и вызывать ее мы должны с тем же количеством аргументов, заданных в нужном порядке.
Например:Вызывая функцию, мы можем передавать ей следующие типы аргументов:Обязательные аргументы (Required arguments)
Аргументы-ключевые слова (Keyword arguments)
Аргументы по-умолчанию (Default arguments)
Аргументы произвольной длины (Variable-length argumens)
# Определим функцию hour_to_sec # Она переводит часы в секунды def hour_to_sec(hour, min, sec): return hour * 60 * 60 + min * 60 + sec
# Вызовем функцию. Количество и порядок аргументов очень важны! # Иначе результат вычислений будет неверным >>> hour_to_sec(0, 5, 50)
350
2. Аргументы-ключевые слова
Аргументы-ключевые слова используются при вызове функции. Благодаря ключевым аргументам, вы можете задавать произвольный (то есть не такой, каким он описан при создании функции) порядок аргументов.
Например:
# Используем ту же самую функцию def hour_to_sec(hour, min, sec): return hour * 60 * 60 + min * 60 + sec
# Хотя в определении первым параметром идут часы, # мы можем передать секунды в качестве первого аргумента. # В таком случае мы обязаны указать имя параметра >>> hour_to_sec(sec=50, hour=0, min=5)
350
3. Аргументы по-умолчанию
Аргумент по умолчанию, это аргумент, значение для которого задано изначально, при создании функции. Если при вызове функции вы не будете передавать данный аргумент, то функция возьмет его значение по-умолчанию.
Например:
# Функция принимает два параметра: имя и возраст # Параметр age имеет значение по-умолчанию def person(name, age=25): print(name, 'is', age, 'years old')
# Передадим функции оба параметра и посмотрим результат >>> person('Ivan', 19)
Ivan is 19 years old
# Теперь передадим функции только 1 параметр # Параметр age примет свое значение по-умолчанию >>> person('Ivan')
Ivan is 25 years old
4. Аргументы произвольной длины
Иногда возникает ситуация, когда вы заранее не знаете, какое количество аргументов будет необходимо принять функции. В этом случае следует использовать аргументы произвольной длины. Они задаются произвольным именем переменной, перед которой ставится звездочка (*).
Например:
# Определим функцию с произвольным количеством параметров # Данная функция выводит переданные ей аргументы в консоль def print_args(*args): print(args)
# Вызовем функцию без аргументов >>> print_args()
()
# Вызовем функцию с 1 аргументом >>> print_args('Строка')
('Строка')
# Вызовем функцию с 5ю аргументами >>> print_args(1, 'Строка', 'Еще строка', 38, 4)
(1, 'Строка', 'Еще строка', 38, 4)