Функции в Python

В этой статье вы узнаете о функциях в Python: что такое функция, какой у нее синтаксис, какие бывают компоненты и типы функций. А еще вы научитесь создавать функцию на Python.

Что такое функция

Функция — это группа связанных инструкций, выполняющих определенную задачу.

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

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

Синтаксис функции

def имя_функции(аргументы):
    """строка документации"""
    операторы

Давайте рассмотрим какие компоненты включает в себя определение функции:

  1. Ключевое слово def — начало заголовка функции.
  2. Имя функции — для однозначной идентификации функции. Оно соответствует правилам называния идентификаторов в Python.
  3. С помощью параметров (аргументов) мы передаем значения в функцию. Аргументов может и не быть. 
  4. Двоеточие : обозначает конец заголовка функции.
  5. Необязательная строка документации (docstring) нужна для описания того, что делает функция.
  6. Один или несколько операторов Python составляют тело функции. Все инструкции должны иметь одинаковый отступ (4 пробела или 1 TAB).
  7. Оператор return возвращает переданное значение из функции. Он необязателен.

Пример функции

def greet(name):
    """
    Эта функция
    приветствует человека, имя которого
    хранится в параметре name.
    """
    print("Привет, " + name + ". Доброе утро!")

Как вызвать функцию

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

>>> greet('Джон')
Привет, Джон. Доброе утро!

Примечание. Попробуйте сами запустить приведенный выше код с определением функции и посмотрите результат.

def greet(name):
    """
    Эта функция
    приветствует человека, имя которого
    хранится в параметре name.
    """
    print("Привет, " + name + ". Доброе утро!")

greet('Джон')

Строки документации

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

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

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

Пример строки документации

Попробуйте запустить в оболочке Python следующую команду и посмотрите на результат.

>>> print(greet.__doc__)

    Эта функция
    приветствует человека, имя которого
    хранится в параметре name.

Возвращаемое значение

Оператор return используется для выхода из функции и возврата в то место, откуда она была вызвана.

Синтаксис возвращения значения

return список_выражений

Оператор return может содержать выражение, которое возвращает значение. Если в операторе нет выражения или самого оператора возврата нет внутри функции, функция вернет объект None.

Пример возвращения значений

def absolute_value(num):
    """ Возвращает абсолютное значение
   введенного числа"""

    if num >= 0:
        return num
    else:
        return -num

print(absolute_value(2))

print(absolute_value(-4))

Вывод:

2
4

Как работают функции

Рассмотрите схему. Так работают функции.

Область видимости и время жизни переменной

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

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

Вот пример, иллюстрирующий область видимости переменной внутри функции.

def my_func():
    x = 10
    print("Значение внутри функции:", x)

x = 20
my_func()
print("Значение вне функции:", x)

Вывод:

Значение внутри функции: 10
Значение вне функции: 20

Здесь мы видим, что значение x изначально равно 20. Хотя функция my_func () изменила значение x на 10, это не повлияло на ее значение вне функции.

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

А вот переменные, которые объявлены вне функции, будут видны внутри нее. У них глобальная область видимости.

Если переменная определена вне функции, то внутри функции мы можем прочитать ее значение. Однако мы не сможем его изменить. Для того, чтобы изменить ее значение, нужно объявить ее как глобальную с помощью ключевого слова global.

Типы функций

Функции в Python можно разделить на два типа:

  1. Встроенные функции — функции, встроенные в Python.
  2. Пользовательские функции — функции, созданные пользователями. Чтобы их использовать, нужно устанавливать дополнительные файлы.
codechick

СodeСhick.io - простой и эффективный способ изучения программирования.

2024 ©