Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

Функции в Python: синтаксис, типы и практические примеры

Функции в Python

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

Видео: введение в функции Python

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

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

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

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

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

def function_name(parameters):
    """docstring"""
    statement(s)

Приведенное выше определение функции состоит из следующих компонентов:

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

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

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

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

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

>> greet('Paul')
Hello, Paul. Good morning!

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

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

greet('Paul')

Примечание: в Python определение функции должно всегда присутствовать перед её вызовом. В противном случае возникнет ошибка. Например:

# вызов функции
greet('Paul')
# определение функции
def greet(name):
    """Эта функция приветствует человека, переданного в качестве параметра"""
    print("Hello, " + name + ". Good morning!")
# Ошибка: name 'greet' is not defined

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

Первая строка после заголовка функции называется docstring (строка документации). Она кратко объясняет, что делает функция.

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

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

Например:

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

>> print(greet.__doc__)
Эта функция приветствует человека, переданного в качестве параметра

Чтобы узнать больше о docstrings в Python, посетите раздел «Python Docstrings».


Оператор return

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

Синтаксис return

return [expression_list]

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

Например:

>> print(greet("May"))
Hello, May. Good morning!
None

Здесь None — возвращаемое значение, так как greet() напрямую выводит имя и не использует оператор return.


Пример с return

def absolute_value(num):
    """Эта функция возвращает абсолютное значение введенного числа"""
    if num >= 0:
        return num
    else:
        return -num

print(absolute_value(2))
print(absolute_value(-4))

Вывод

2
4

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

Функции в Python: синтаксис, типы и практические примеры

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

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

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

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

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

def my_func():
    x = 10
    print("Value inside function:", x)

x = 20
my_func()
print("Value outside function:", x)

Вывод

Value inside function: 10
Value outside function: 20

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

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

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

Мы можем читать эти значения изнутри функции, но не можем изменять (записывать) их. Чтобы изменить значение переменных вне функции, их нужно объявить глобальными с помощью ключевого слова global.


Типы функций

По сути, функции можно разделить на следующие два типа:

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

Python

  1. Мастерство операторов Python: Полное руководство
  2. Аргументы функций в Python: позиционные, именованные и параметры по умолчанию
  3. Lambda-функции в Python: практическое руководство по анонимным функциям
  4. Словари в Python: создание, манипуляции и продвинутые техники
  5. Генераторы в Python: эффективная итерация и продвинутые сценарии
  6. Замыкания в Python: как вложенные функции захватывают переменные
  7. Декораторы в Python: улучшайте функции экспертными техниками
  8. 10 ключевых функций Insight для оптимизации FDM-печати на Stratasys
  9. Мастерство метода strip() в Python: подробное руководство и практические примеры
  10. Освоение лямбда-функций Python: практические примеры и лучшие практики