Python функции: def, lambda с примерами

Что такое функции?

Функции — подпрограммы, позволяющие поместить часто повторяющийся код в одно место. При необходимости выполнения этого кода достаточно обратиться к функции. Это значительно сокращает общий объём кода программы, исключая многократное дублирование.

На протяжении курса мы уже работали со встроенными функциями Python, такими как print, input, int, str и другими. При вызове функции print, например, мы передаём ей значение для вывода на экран, не указывая всю логику вывода (открытие консоли, вывод информации, закрытие консоли). Вся эта логика уже реализована внутри функции. Таким образом, функции значительно упрощают код.

Создание собственных функций

Для создания собственных функций используется ключевое слово def. Далее указывается имя функции (любое, без специальных символов), круглые скобки (в которых могут указываться параметры), двоеточие и, с отступом, тело функции.

def test_funk():
    pass 

Ключевое слово pass указывает на отсутствие действий в функции. Для выполнения кода внутри функции её необходимо вызвать:

test_funk()

Без вызова функции код внутри неё не выполнится.

def test_funk():
    print("Hello!")

test_funk()

В теле функции можно разместить любой код: циклы, условия, переменные. Главное — соблюдать одинаковый отступ.

Передача параметров функциям

Для передачи значений в функцию указываем параметры в круглых скобках при её определении:

def test_funk(word):
    print(word + "!")

test_funk("High") 

Параметры функции ведут себя как переменные, но их область видимости ограничена функцией. В Python отсутствует строгая типизация, поэтому можно передавать параметры разных типов данных.

Возвращение значений из функции

Если требуется получить результат работы функции, используется ключевое слово return:

def summa(a, b):
    return a + b

res = summa(5,7)
print(res)

Теперь результат сложения возвращается функцией и может быть сохранён в переменную и использован далее. Код можно упростить, убрав промежуточную переменную:

def summa(a, b):
    return a + b

print(summa(5,7))

Пример: функция суммирования

Рассмотрим функцию, которая суммирует два значения:

def summa(a, b):
    rez = a + b
    print("Result:", rez)

summa(5, 7)
summa("Hi", "!")

Функция корректно обрабатывает как числовые, так и строковые значения.

Поиск минимального элемента в списке

Рассмотрим задачу поиска минимального элемента в списке: сначала без функции, затем с её использованием.

Без функции:

nums1 = [5, 8, 4, 12, 2]
min_num = nums1[0]
for num in nums1:
    if num < min_num:
        min_num = num
print(min_num)

nums2 = [2.1, 3.5, 1.9, 4.2]
min_num2 = nums2[0]
for num in nums2:
    if num < min_num2:
        min_num2 = num
print(min_num2)

С использованием функции:

def minimal(lst):
    min_number = lst[0]
    for num in lst:
        if num < min_number:
            min_number = num
    return min_number

nums1 = [5, 8, 4, 12, 2]
nums2 = [2.1, 3.5, 1.9, 4.2]

min1 = minimal(nums1)
min2 = minimal(nums2)
print(min1)
print(min2)

if min1 < min2:
    print(min1)
else:
    print(min2)

Использование функции значительно сокращает код и делает его более читаемым.

Лямбда-функции (анонимные функции)

Лямбда-функции — анонимные функции, записываемые в одну строку:

funk = lambda x, y: x * y
print(funk(5, 2))

Лямбда-функции подходят для коротких выражений.

В этом уроке мы научились создавать и использовать функции в Python, включая лямбда-функции. Функции позволяют структурировать код, повторно использовать фрагменты кода и улучшать читаемость программ.

Что будем искать? Например,программа