Learnly
Python с нуля/Глава 7/Урок 1

Зачем нужны функции

Зачем нужны функции

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

Проблема без функций

Представь, что в трёх местах программы нужно считать скидку на товар:

# В первом месте
price1 = 1000
discount1 = price1 * 0.1
final1 = price1 - discount1

# Во втором месте
price2 = 2500
discount2 = price2 * 0.1
final2 = price2 - discount2

# В третьем месте
price3 = 800
discount3 = price3 * 0.1
final3 = price3 - discount3

А теперь скидка изменилась с 10% на 15%. Нужно поменять в трёх местах. И можно забыть про одно.

Решение: вынести в функцию

def apply_discount(price):
    discount = price * 0.1
    return price - discount

final1 = apply_discount(1000)
final2 = apply_discount(2500)
final3 = apply_discount(800)

Теперь логика скидки, в одном месте. Изменил здесь, изменилось везде.

Три причины использовать функции

1. Не повторяй себя (DRY, Don't Repeat Yourself)
Один и тот же код в разных местах, это запах проблемы. Функция позволяет написать один раз и использовать много раз.

2. Читаемость
Сравни:

# Без функции, непонятно что происходит
if len(text) > 0 and text[0].isupper() and text.endswith('.'):
    ...

# С функцией, читается как текст
if is_valid_sentence(text):
    ...

3. Тестируемость
Функцию легко проверить отдельно от всей программы.

Встроенные функции Python

Ты уже используешь функции! print(), len(), input(), int(), str(), это всё встроенные функции Python.

Кто-то уже написал их за тебя, ты просто вызываешь по имени.

💡 Главная мысль: Функция, это именованный блок кода, который можно вызывать многократно. Вместо копирования кода, выноси повторяющуюся логику в функцию.