Функции в Python

Представьте, что вы готовите сложное блюдо. Вместо того чтобы каждый раз заново придумывать рецепт, вы можете использовать уже готовый. Функции в Python работают похожим образом! 🧩

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

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

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

Функции помогают:

  • Организовать код в логические блоки
  • Избежать повторения кода
  • Сделать программу более читаемой
  • Упростить отладку и поддержку

Создание и вызов функций

Базовый синтаксис

Функция в Python создается с помощью ключевого слова def:

Python 3.13
# Простой пример функции
>>> def greet():
...     print("Привет, мир!")

# Вызов функции
>>> greet()
Привет, мир!

В этом примере:

  1. def указывает, что мы создаем функцию
  2. greet — это имя функции
  3. () — скобки для параметров (пока пустые)
  4. : — двоеточие после определения
  5. Тело функции с отступом

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

Функции могут принимать параметры — значения, которые передаются в функцию при её вызове:

Python 3.13
# Функция с параметрами
>>> def greet(name):
...     print(f"Привет, {name}!")

# Вызов функции с аргументом
>>> greet("Анна")
Привет, Анна!
>>> greet("Петр")
Привет, Петр!

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

Функции могут возвращать результат своей работы с помощью оператора return:

Python 3.13
# Функция с возвращаемым значением
>>> def add(a, b):
...     return a + b

# Использование результата функции
>>> result = add(5, 3)
>>> print(f"5 + 3 = {result}")
5 + 3 = 8

Параметры функций

Позиционные и именованные параметры

Python поддерживает два способа передачи аргументов в функцию:

Python 3.13
# Функция с несколькими параметрами
>>> def describe_pet(animal_type, pet_name):
...     print(f"У меня есть {animal_type} по имени {pet_name}.")

# Позиционные аргументы
>>> describe_pet("собака", "Шарик")
У меня есть собака по имени Шарик.
# Именованные аргументы >>> describe_pet(pet_name="Мурка", animal_type="кошка")
У меня есть кошка по имени Мурка.

Параметры по умолчанию

Вы можете задать значения по умолчанию для параметров:

Python 3.13
# Функция с параметрами по умолчанию
>>> def describe_pet(pet_name, animal_type="собака"):
...     print(f"У меня есть {animal_type} по имени {pet_name}.")

# Использование значения по умолчанию
>>> describe_pet("Шарик")
У меня есть собака по имени Шарик.
# Переопределение значения по умолчанию >>> describe_pet("Мурка", "кошка")
У меня есть кошка по имени Мурка.

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

Иногда вы не знаете заранее, сколько аргументов будет передано в функцию. Для этого используются специальные параметры:

Python 3.13
# Функция с произвольным количеством позиционных аргументов
>>> def make_pizza(*toppings):
...     print("Готовим пиццу со следующими начинками:")
...     for topping in toppings:
...         print(f"- {topping}")

>>> make_pizza("пепперони")
Готовим пиццу со следующими начинками:
- пепперони
>>> make_pizza("грибы", "зеленый перец", "дополнительный сыр")
Готовим пиццу со следующими начинками:
- грибы
- зеленый перец
- дополнительный сыр
# Функция с произвольным количеством именованных аргументов >>> def build_profile(first, last, **user_info): ... profile = {} ... profile['first_name'] = first ... profile['last_name'] = last ... for key, value in user_info.items(): ... profile[key] = value ... return profile >>> user_profile = build_profile('Анна', 'Иванова', ... location='Москва', ... field='программирование') ... print(user_profile)
{'first_name': 'Анна', 'last_name': 'Иванова', 'location': 'Москва', 'field': 'программирование'}

Проверка понимания

Давайте проверим, насколько хорошо вы усвоили тему функций:

Что выведет следующий код?

Python 3.13
def mystery(x, y=2):
    return x * y

result = mystery(3)
print(result)

Заключение

Отлично! 🎉 Теперь вы знаете, как создавать и использовать функции в Python. Это мощный инструмент, который поможет вам писать более чистый и организованный код. Практикуйтесь, и скоро вы будете создавать сложные программы с легкостью! 💪


Мы с вами на связи
Русский