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

Разложение на расстоянии

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

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

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

Анатомия функций

Мне нравится представлять функцию в виде коробки с двумя слотами. Одна щель что-то принимает, другая что-то выталкивает.

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

Чтобы создать функцию, мы начинаем с ключевого слова def. Он сообщает Python, что мы определяем функцию. Оттуда мы указываем имя нашей функции и имя-заполнитель для переменной, которую вы будете использовать в следующем коде.

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

Результат расчета возвращается. Мы используем ключевое слово return для возврата значения. Возврат значения часто вызывает путаницу у тех, кто только знакомится с функциями.

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

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

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

Закрытие

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