- Зачем определять функции
- Синтаксис определения
- Пример: функция для печати среднего арифметического
- Переиспользование и читаемость
До этого момента мы использовали только уже готовые функции — 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
.
Переиспользование и читаемость
Функции помогают не только избегать дублирования, но и делают программы более понятными. Название функции само по себе говорит, что она делает. Это особенно важно в больших проектах, где код читают другие программисты (или вы сами через месяц).