Python функции: def, lambda, return для начинающих

Функции — важнейший инструмент в программировании на Python. Это подпрограммы, вызываемые из основного кода для выполнения определённых действий. Далее описывается создание и использование функций в Python, включая функции def, lambda и ключевое слово return.

Создание функций с помощью def

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

def my_function(x, a, b):
    return x

В примере функция my_function принимает три параметра: x, a и b. Однако, в теле функции используется только x, который возвращается с помощью ключевого слова return. Функция может принимать любое количество параметров, включая ноль.

def my_function(x):
    return x

print(my_function(23))  # Вывод: 23

Пример функции, суммирующей два параметра:

def add(x, a):
    return x + a

print(add(23, 12))  # Вывод: 35
print(add("Hello ", "World")) # Вывод: Hello World

Функция может содержать множество строк кода:

def add(x, a):
    rs = x + a
    return rs

print(add(23, 12))  # Вывод: 35

Важно, чтобы отступ (обычно табуляция) для всех строк внутри функции был одинаковым.

Функции возвращают различные типы данных: числа, строки, списки, словари, кортежи и т.д. Ключевое слово return указывает возвращаемое значение. Если return отсутствует, функция возвращает None.

Вложенные функции

Функции могут быть вложены друг в друга:

def outer_function(x):
    def inner_function(a):
        return x + a
    return inner_function

test = outer_function(100)
print(test(200))  # Вывод: 300

Функция outer_function возвращает функцию inner_function, которая использует значение x из внешней функции. Вызов test(200) эквивалентен вызову inner_function(200) с x = 100.

Функции без возвращаемого значения

Если функция не должна возвращать значение, используется ключевое слово pass:

def my_function():
    x = 34
    y = 45
    pass

print(my_function())  # Вывод: None

Аргументы по умолчанию

Аргументам функции могут быть присвоены значения по умолчанию:

def func(r, w=2, y=2):
    s = r + w
    s *= y
    return s

print(func(4))     # Вывод: 12 (4 + 2) * 2
print(func(4, 3))   # Вывод: 14 (4 + 3) * 2
print(func(4, 3, 3)) # Вывод: 21 (4 + 3) * 3

Аргументы по умолчанию должны указываться после обычных аргументов.

Передача произвольного количества аргументов

Функции могут принимать произвольное количество аргументов:

def func(*args):
    print(args)  # args - кортеж

func(2, 78.5, 6) # Вывод: (2, 78.5, 6)

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

def func(**kwargs):
    print(kwargs) # kwargs - словарь

func(a=23, n=56, o=90, short='dict', longer='Dictionary')

Lambda-функции

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

add = lambda x, y: x + y
print(add(2, 5))  # Вывод: 7
print(add("Q", "Q")) # Вывод: QQ
print(add("Q"*5, "")) # Вывод: QQQQQ

Lambda-функции также могут принимать произвольное количество аргументов.

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

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