Функции - это блоки кода, которые можно многократно использовать в программе.
Они позволяют разработчикам организовывать код, избегать его дублирования и упрощать логику программы.
Для создания функции используется ключевое слово def
.
В этом примере мы объявили функцию sayHelloWorld()
и вызвали её 3 раза.
Вы можете вызывать функцию столько раз, сколько вам нужно!
Часто возникает ситуация, когда нам необходимо передать функции некоторую информацию, в этом случае используются аргументы функции.
Пример (позиционные параметры):
В этом примере при объявлении функции, мы обозначили в скобках две перменные a и b, теперь
при вызове функции мы должны передать ей два аргумента, которые помещаются в эти переменные.
Так при вызове f(4,2)
получиться, что a=4, b=2
.
В этом примере при объявлении функции, мы обозначили в скобках две перменные a и b, однако
теперь мы дали им значения по умолчанию и если мы вызываем функцию без аргументов f()
то переменные принимают
заранее определённые в функции значения, в нашем примере это a=0, b=0
.
Так-же обратим внимание, что мы можем указать название переменной при передаче параметра,
например при вызове f(b=5)
, переменные будут равны a=0, b=5
.
В этом примере мы можем передать только один параметр, так как у второго уже есть значение по умолчанию.
Пример (переменное количество параметров):Иногда нужно передать неопределённое количество аргументов. Для этого используются специальные обозначения:
*args
- для передачи произвольного количества позиционных аргументов;**kwargs
- для передачи произвольного количества именованных аргументов;Если появляется необходимость передать несколько параметров в функцию, причем заведомо не известно сколько именно параметров
будет передано в функцию, то можно указать в параметре * перед названивем переменной. Таким образом, вы получаете список параметров.
В данном примере, мы приняли список чисел и просуммировали их!
Если по итогу работы функции необходимо получить какое-то значение, то используется оператор return
.
Кроме того, что оператор reutrn
возвращает значение, важно знать, что после этого оператора никакой код функции не выполняется.
Ну и небольшой комментарий по поводу произношения этого слова, это не "ретурн", правильней сказать "ритёрн", и буквы "р" практически не произносятся, как например в слове work.
Переменные внутри функции имеют локальную область видимости, то есть они доступны только внутри этой функции.
Пример:Несмотря на то, что мы вызвали функцию change_x()
, переменная x
, не поменяла своего значения,
а при попытке обратиться к переменной y
вне функции, мы получили ошибку и сообщение о том, что её не существует.
Однако можно использовать глобальные переменные, объявив их с помощью ключевого слова global
.
Для чего же нужен такой странный механизм?
- Как говорилось в самом начале, функция это блок кода, и таких блоков у вас может быть много, что-бы не было конфликтов с названием переменных был реализован такой механизм замыкания.
Лямбда-функции — это анонимные функции, которые часто используются для выполнения коротких операций.
Пример:Для определения такой функции, вы указываете ключевое слово lambda
, затем какие аргументы принимает функция и после двоеточия указываете, что должна вернуть функция после её вызова.
Функции повсеместно используются в разработке программного обеспечения, необходимо порешать ряд задач, чтобы хорошо ориентироваться в этой теме! Решайть задачи!