Шаг 16.
Однострочники Python.
Краткая памятка по Python. Функции

    На этом шаге мы освежим наши знания о функциях.

    Функции позволяют при необходимости повторно использовать фрагменты кода: писать их один раз, а задействовать многократно. При описании функции указывается ключевое слово def, название функции и набор аргументов для параметризации выполнения ее тела. Различные наборы аргументов могут резко менять возвращаемые функцией результаты. Допустим, вы описали функцию square(x), возвращающую квадрат входного аргумента x. Вызов square(10) возвращает 10 * 10 = 100, а вызов square(100) возвращает 100 * 100 = 10000.

    Ключевое слово return завершает выполнение функции и передает поток выполнения вызывающей стороне. Можно также указать необязательное значение после ключевого слова return, содержащее возвращаемый функцией результат (пример 1.14).


Пример 1.14. Ключевое слово return
def appreciate(x, percentage):
    return x + x * percentage / 100

print(appreciate(10000, 5))
# 10500.0

    Мы создали функцию appreciate() для вычисления роста вклада при заданной доходности. В приведенном коде мы вычисляем, насколько растет вклад 10 000 долларов за один год при ставке 5%. В результате получается 10 500 долларов. С помощью ключевого слова return указываем, что результат функции должен равняться сумме исходного вклада и номинальной процентной ставки. Тип возвращаемого значения функции appreciate() - float.

Лямбда-функции

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

  lambda <аргументы> : <возвращаемое выражение>

    У лямбда-функции может быть один или несколько аргументов, разделенных запятыми. После двоеточия (:) описывается возвращаемое выражение, в котором может использоваться (или не использоваться) описанный ранее аргумент. Роль возвращаемого выражения может играть любое выражение или даже другая функция.

    Лямбда-функции играют важнейшую роль в Python. В коде реальных проектов они встречаются повсеместно: например, для сокращения кода или создания аргументов различных функций Python (например, map() или reduce()). Рассмотрим код в примере 1.15.


Пример 1.15. Использование ключевого слова lambda
print((lambda x: x + 3)(3))
# 6

    Сначала мы создаем лямбда-функцию, принимающую на входе значение x и возвращающую результат выражения x + 3. Результат представляет собой объект-функцию, которую можно вызывать точно так же, как любую другую. В соответствии с ее семантикой эту функцию можно назвать функцией-инкрементором. Результат ее вызова с аргументом x=3 - суффикс (3) в операторе print() в примере 1.15 - целочисленное значение 6. Далее мы будем постоянно использовать лямбда-функции, поэтому убедитесь, что хорошо понимаете, как они работают (хотя у вас еще будет возможность тщательнее разобраться в них).

    На следующем шаге мы подведем некоторые итоги.




Предыдущий шаг Содержание Следующий шаг