В этом уроке мы будем использовать ту же схему подключения что и в прошлом уроке:
В прошлом уроке мы поняли для чего нужны переменные и оптимизировали наш код. Теперь читать его гораздо проще. Но если внимательно на него взглянуть, всё же видно, что имеются свои изъяны. Например, один и тот же код, который связан с миганием светодиода повторяется несколько раз.
Гораздо удобнее было бы данный кусок кода не повторять, а дать ему имя как и переменной, и пользоваться им при необходимости.
# мигание светодиодом led.on() time.sleep(sec) led.off() time.sleep(sec)
Этот кусочек можно было бы назвать blink (от английского blink - мигать) и обращаться к нему.
Здесь мы и подошли к использованию функций. Функция - это именованная часть кода. Функция при этом может принимать аргументы (различные параметры) и возвращать значения. Самая простая функция не будет принимать никаких аргументов и не будет возвращать никакого значения.
Напишем такую простую функцию и назовём её blink. Перед этим важно понять ещё одну сущность при написании кода - отступы. В языке python отступы имеют значение. Так они определяют вложенность конструкций. То есть чтобы показать что следующая строка кода соотносится с предыдущей, у строки нужно сделать отступ (в python один отступ - это четыре пробела).
Функция определяется ключевым словом def (сокращение от английского define - определить), после которого следует указать имя функции и в скобках указать параметры, которые функция будет принимать и поставить двоеточие. Если она не принимает ничего, то скобки остаются пустыми. После двоеточия с отступами пишется код функции (её тело), то что это функция делает. Итак, опишем нашу функцию.
# мигание светодиодом def blink(): led.on() time.sleep(sec) led.off() time.sleep(sec)
Мы всего лишь взяли имеющийся кусок кода, и указали что он теперь будет называться blink(). Заметьте, что во время определения, сам код не исполняется. Функция выполнится только когда мы её вызовем, по имени. Таким образом наш изменённый код будет выглядеть следующим образом.
# импорт модулей from machine import Pin import time # переменные led = Pin(5, Pin.OUT) sec = 1 # мигание светодиодом def blink(): led.on() time.sleep(sec) led.off() time.sleep(sec) blink() blink() blink()
Теперь наш код стал намного нагляднее.
Обратите внимание, что тело функции с каждой строкой имеет отступ четыре пробела. После тела функции, отступ прекращается, и вызов функции мы пишем уже на новой строке без отступа.
Запомнить: