Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

К настоящему моменту вы, вероятно, заметили, что некоторые фрагменты кода повторяются.
Что если бы вы могли собрать этот код в один пакет, дать ему имя и запускать его когда угодно без повторного написания?

Именно для этого существуют функции.

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


Зачем использовать функции?

Функции — одни из самых мощных инструментов в программировании, потому что они:

  • Избегают повторений — Написал один раз, используй где угодно.
  • Организуют ваш код — Разбивают большие задачи на меньшие, управляемые части.
  • Упрощают тестирование — Можно проверить отдельный кусок логики, не запуская всю программу целиком.

СОВЕТ: Функции похожи на кухонные приборы. Можно замешивать тесто вручную каждый раз, но миксер делает это быстрее, равномернее, и его можно использовать в любой момент.

Определение вашей первой функции

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

Пример:

def square(number):
    return number * number

print(square(4))  # 16

Что здесь происходит:

  1. Определяется функция square, которая принимает один параметр — number.
  2. Внутри функция умножает number на себя и возвращает результат.
  3. Вызывается square(4), где number становится равным 4.
  4. Функция возвращает 16, который выводится с помощью print().

ВАЖНО!: Оператор return возвращает значение туда, где была вызвана функция. Если забыть его, функция вернёт None. В будущем вы узнаете, что не каждая функция что-то возвращает; иногда нужно просто выполнить действия и всё.

Функции с несколькими параметрами

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

Пример:

def add(num1, num2):
    return num1 + num2

result = add(5, 6)
print(result)  # 11

Здесь num1 становится 5, а num2 — 6 при вызове функции. Внутри они складываются, и возвращается сумма.

Примечание: Имена num1 и num2 существуют только внутри функции — это локальные переменные.

Значения параметров по умолчанию

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

Пример:

def greet(name, greeting="Hello"):
    print(f"{greeting}, {name}!")

greet("John")                   # Использует приветствие по умолчанию
greet("Maria", "Good evening")  # Использует пользовательское приветствие

Если не передать greeting, он по умолчанию равен "Hello". Если передать — этот параметр заменит значение по умолчанию.

СОВЕТ: Значения по умолчанию должны идти после всех обязательных параметров в определении функции.

Итоги

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

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