Раздел 2: Функции ⚙

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

Приготовьте свою постель › Почистите зубы › Умойтесь › Вытрите лицо насухо

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

Теперь вы можете подумать, зачем нам нужны функции? Это просто, как бы мы ни любили злоупотреблять Ctrl+C и Ctrl+V, повторяющийся код не рекомендуется. Вместо этого каждый раз, когда вам нужно выполнить одно и то же действие, вы можете просто вызвать функцию, чтобы она заработала.

Основы функций

В Python есть два вида функций — Встроенные функции и Определяемые пользователем функции. Мы поговорим о встроенных функциях в следующем посте.

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

  • Функция всегда должна начинаться с def слова
  • За def будет следовать имя функции, рекомендуется писать строчными буквами.
  • За именем функции следуют круглые скобки и двоеточие ():, обозначающие конец определения функции.
  • Любые строки внутри функции должны иметь отступ, чтобы работать при вызове функции.
  • Необязательное требование, строка документации может быть добавлена ​​прямо под функцией.

Вот как это будет выглядеть. 👇

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

Здесь я попросил распечатать Я проснулся в 8 утра

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

  • Параметры. Параметры — это то, что ваша функция может принимать и с чем работать внутри функции. Думайте об этом как о переменной внутри функции, которая может принимать входные данные или также может быть необязательной.
  • Аргументы. Аргументы — это значения, которые вы присваиваете параметру при вызове функции. Думайте об этом как о присвоении значения предварительно определенным параметрам. Аргументы снова делятся на две группы:
  1. Позиционные аргументы — аргументы, которые вызываются в функциях на основе позиций параметров.
  2. Аргументы с ключевыми словами — аргументы, которые вызываются в функциях с использованием того же ключевого слова, которое используется для определения параметров.

Поскольку мы поняли основную идею параметров и аргументов, давайте углубимся в следующий тип функции drum-roll

Функции с входами 👇

Здесь мы видим, что wake_up имеет два параметра time и meridian. Вы можете видеть, что time требует значения, однако meridian имеет предварительно назначенное значение строки 'AM', что означает, что меридиан не является обязательным для вас. Вот как вы можете вызвать эту функцию:

Вызов функции только с необходимыми даннымиЗдесь 12 назначается переменной времени, тогда как меридиан использует «AM» в качестве значения по умолчанию. Вызов функция с обоими даннымиЗдесь 12 присваивается переменной времени, а меридиан присваивается значению 'PM'. Это одно из преимуществ использования переменных с ключевыми словами, поскольку не требуется, чтобы положение аргументов соответствовало положению параметров.

Примечание. Изменение позиционного аргумента wake_up('PM', 12) приведет к выводу --› Я проснулся в 12 часов дня

Функции с входами и выходами 👇

Это, вероятно, наиболее часто используемый тип функций, и с ним действительно удобно работать. Почти все правила остались прежними с того момента, как мы определили «Основы функций», за исключением добавления одного:

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

Вызов функции с позиционным аргументом -

returned_value = add(2, 3) --› Это не печатает никакого значения, а вместо этого выделяет переменной returned_value значение 5.

Попробуйте это и убедитесь, что оператор печати полностью игнорируется консолью.

Вызов функции с аргументом ключевого слова -

returned_value = add(number1 = 6, number2 = 3) --> Это тоже не печатает никакого значения, а вместо этого выделяет переменной returned_value значение 9.

Заключение

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

Вот несколько распространенных из них, которые вы можете поймать:

  1. Отсутствует аргумент, если у вашей функции есть параметры, появится TypeError
  2. Запись аргумента Keyword перед аргументом Positional приведет к SyntaxError
  3. Любая строка кода после команды return на том же уровне отступа будет проигнорирована.

Вот изображение, которое обобщает, как запускаются функции и как они работают.

  1. Код начинает выполнение с хвоста стрелки и следует за ее головой
  2. Когда он попадает в звезду
  3. Он перескакивает, чтобы увидеть функцию под именем sum
  4. Выполняет все внутри функции, принимая аргументы для замены параметров
  5. Соответствует оператору return
  6. Присваивает значение локальной переменной num глобальной переменной addition

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

Я надеюсь, что это сообщение застанет вас в добром здравии!

Первоначально опубликовано на https://dev.to 18 ноября 2021 г.