Зарегистрируйтесь, чтобы продолжить обучение

Создание (определение) функций Основы Python

определение-функции

До этого момента мы использовали только уже готовые функции — print(), len(), max() и другие. Но в Python можно создавать свои собственные функции. Это основа программирования: выделение повторяющейся логики в именованные блоки кода.

Зачем определять функции

Допустим, у нас есть несколько похожих участков кода:

print('Hello, Hexlet!')
print('Hello, world!')
print('Hello, Python!')

Чтобы не повторять один и тот же шаблон, мы можем оформить его в виде своей функции, которая принимает на вход один параметр и печатает нужную строчку на экран:

def say_hello(name):
    print(f'Hello, {name}!')

Теперь мы можем вызывать её с разными аргументами:

say_hello('Hexlet')   # => Hello, Hexlet!
say_hello('world')    # => Hello, world!
say_hello('Python')   # => Hello, Python!

В нашем примере функция ничего не возвращает, она действует как print() выводя на экран сообщение.

Синтаксис определения

def имя_функции(параметры):
    тело
  • def — ключевое слово, с которого начинается определение.
  • имя_функции — любое допустимое имя, как у переменной.
  • В скобках — список параметров, через запятую.
  • После двоеточия — тело функции. Оно пишется с отступом в 4 пробела
  • Чтобы функция что-то делала, в её теле пишется обычный Python-код.

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

def say_hi():
    print('Hi!')

print('Программа продолжается…')

Здесь функция say_hi() определена, но print('Программа продолжается…') не относится к функции — у него нет отступа. Он будет выполнен сразу при запуске программы, независимо от вызова say_hi().

Чтобы say_hi() сработала, её нужно явно вызвать:

def say_hi():
    print('Hi!')

say_hi()  # => Hi!
print('Программа продолжается…')

Пример: функция для печати среднего арифметического

Сейчас мы реализуем простую функцию, которая вычисляет и печатает среднее арифметическое двух чисел. Среднее арифметическое — это сумма чисел, делённая на их количество. Например, среднее от 6 и 4 считается так: (6 + 4) / 2 = 5.

def print_average(a, b):
    total = a + b
    average = total / 2
    print(average)

print_average(6, 4)  # => 5.0

Здесь:

  • a и b — входные параметры функции.
  • total — сумма этих чисел.
  • average — делим сумму на 2, чтобы найти среднее.
  • print() выводит результат.

При вызове print_average(6, 4) на экран выведется 5.0.

Переиспользование и читаемость

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


Дополнительные материалы

  1. Именование в программировании
  2. Ментальное программирование

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff