Зачем нужны функции
Ты уже умеешь писать код. Но пока что весь код, это просто длинный список инструкций. Функции, это способ организовать код и сделать его переиспользуемым.
Проблема без функций
Представь, что в трёх местах программы нужно считать скидку на товар:
# В первом месте
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.
Кто-то уже написал их за тебя, ты просто вызываешь по имени.
💡 Главная мысль: Функция, это именованный блок кода, который можно вызывать многократно. Вместо копирования кода, выноси повторяющуюся логику в функцию.