что такое def в python

В языке программирования Python ключевое слово def используется для объявления функций. Это основной способ создавать многоразовые блоки кода, которые могут быть вызваны из других частей программы. Функция позволяет организовать код, улучшить его читаемость, повторное использование и поддержку. Давайте разберем это максимально подробно.

1. Общее описание

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

python
def имя_функции(параметры): # тело функции return результат
  • def — это ключевое слово, которое сообщает Python, что начинается определение функции.

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

  • (параметры) — это список параметров (или аргументов), которые передаются в функцию. Это опциональная часть, и она может быть пуста.

  • return — это ключевое слово для возвращения значения из функции. Этот шаг также опционален: если return отсутствует, функция по умолчанию возвращает None.

2. Пример простого объявления функции

python
def приветствие(): print("Привет, мир!")

Эта функция называется приветствие. Когда мы её вызываем, она просто выводит на экран строку "Привет, мир!".

Вызов этой функции:

python
приветствие() # Выведет: Привет, мир!

3. Функции с параметрами

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

python
def приветствие_по_имени(имя): print(f"Привет, {имя}!")

Теперь функция ожидает аргумент, который будет передан при её вызове. Например:

python
приветствие_по_имени("Алексей") # Выведет: Привет, Алексей!

4. Возвращение значения

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

python
def сложение(a, b): return a + b

Теперь мы можем вызвать функцию и получить результат:

python
результат = сложение(3, 5) # результат будет равен 8 print(результат) # Выведет: 8

5. Функции без возвращаемого значения

Если функция не содержит ключевое слово return, то она вернёт None по умолчанию:

python
def приветствие(): print("Привет, мир!") результат = приветствие() # результат будет None print(результат) # Выведет: None

6. Аргументы по умолчанию

Можно задавать значения по умолчанию для параметров функции. Это позволяет вызывать функцию с меньшим количеством аргументов.

python
def приветствие_по_имени(имя="Мир"): print(f"Привет, {имя}!")

Теперь функция приветствие_по_имени() может быть вызвана с или без аргумента:

python
приветствие_по_имени() # Выведет: Привет, Мир! приветствие_по_имени("Анна") # Выведет: Привет, Анна!

7. Переменное количество аргументов

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

python
def суммирование(*args): return sum(args)

Теперь мы можем передавать любое количество аргументов:

python
print(суммирование(1, 2, 3)) # Выведет: 6 print(суммирование(5, 10, 15, 20)) # Выведет: 50

8. Именованные аргументы (ключевые параметры)

Можно также передавать аргументы по имени. В этом случае порядок аргументов не имеет значения, а сами значения передаются явно.

python
def описание_человека(имя, возраст, город="Неизвестно"): print(f"{имя} - {возраст} лет, живет в {город}.")

Вызов с передачей именованных аргументов:

python
описание_человека(имя="Алексей", возраст=30, город="Москва") # Выведет: Алексей - 30 лет, живет в Москве.

9. Докстринги (Docstrings)

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

python
def сложение(a, b): """Возвращает сумму двух чисел a и b.""" return a + b print(сложение.__doc__) # Выведет: Возвращает сумму двух чисел a и b.

10. Замыкания (Closures)

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

python
def умножитель(множитель): def умножить(число): return число * множитель return умножить умножение_на_2 = умножитель(2) print(умножение_на_2(5)) # Выведет: 10

11. Лямбда-функции (анонимные функции)

Лямбда-функции — это компактные одноразовые функции, которые обычно используются для коротких операций. Синтаксис:

python
lambda аргументы: выражение

Пример:

python
квадрат = lambda x: x ** 2 print(квадрат(4)) # Выведет: 16

12. Рекурсия

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

Пример вычисления факториала с помощью рекурсии:

python
def факториал(n): if n == 0: return 1 else: return n * факториал(n - 1) print(факториал(5)) # Выведет: 120

Заключение

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

Scroll to Top

Карта сайта