Мы узнали, что такое функции и почему они используются, но как мы на самом деле их создаем? В Python функцию можно определить с помощью ключевого слова def в следующем формате:
Имя функции — это просто имя, которое мы будем использовать для идентификации функции.
Параметры функции являются входными данными для этой функции. Мы можем использовать эти входные данные внутри функции. Параметры являются необязательными. Но об этом чуть позже.
Тело функции содержит набор операций, которые будет выполнять функция. Тело функции всегда с отступом вправо.
Давайте начнем с создания простой функции, которая печатает четыре строки текста. У нее не будет никаких параметров. Мы назовем ее my_print_function. Мы можем вызвать функцию в нашем коде, используя ее имя вместе с пустыми круглыми скобками:
def my_print_function(): # Объявление функции без параметров
print("This")
print("is")
print("A")
print("function")
# Конец объявления функции
# Вызываем нашу функцию несколько раз
my_print_function()
my_print_function()
Вот так мы и создали нашу первую функцию! Мы можем повторно использовать ее, когда захотим.
Параметры являются важной частью структуры функции.
Они являются средством передачи данных в функцию. Эти данные могут использоваться функцией для выполнения значимой задачи.
При создании функции мы должны определить количество параметров и их имена. Эти имена относятся только к функции и не влияют на имена переменных в других местах кода. Параметры заключаются в круглые скобки и разделяются запятыми.
Фактические значения/переменные, передаваемые в параметры, называются аргументами.
В предыдущем уроке мы видели функцию min(). Он требует два числа в качестве входных данных и печатает меньшее из них.
Давайте созданим нашу собственную функцию, которая просто выводит минимум. Назовем ее minimum():
def minimum(first, second):
if (first < second):
print(first)
else:
print(second)
num1 = 10
num2 = 20
minimum(num1, num2)
Здесь мы передаем функции num1 и num2. Позиции параметров важны. В приведенном выше случае значение num1 будет присвоено переменной first, поскольку оно было первым параметром. Точно так же значение num2 присваивается переменной second внутри функции.
Если мы вызовем функцию с меньшим или большим количеством аргументов, чем требовалось изначально, Python выдаст ошибку.
Параметр может быть любым видом объекта данных; от простого целого числа до огромного списка.
До сих пор мы определяли только функции, которые что-то печатают. Ничего они нам не возвращают. Но если вспомнить, функции все время возвращают значения. Просто возьмите len(), например. Он возвращает целое число, которое представляет собой длину структуры данных.
Давайте реорганизуем метод minimum(), чтобы он возвращал меньшее значение, а не печатал его. Теперь она будет работать так же, как встроенная функция min() с двумя параметрами:
def minimum(first, second):
if (first < second):
return first
return second
num1 = 10
num2 = 20
result = minimum(num1, num2) # Сохраняем значение, которое вернула наша функция в переменную
print(result)
Мы научились создавать функцию, задавать ее параметры, предоставлять ей аргументы и возвращать из нее данные. Python действительно упрощает процесс.
Рекомендуется сначала определить все наши функции, а затем начать основной код. Их предварительное определение гарантирует, что их можно безопасно использовать в любом месте программы.