Python Schoolby trefilov
Шаг 1 из 5+100 XP

Функции

Функции упаковывают код, который ты пишешь много раз.

Зачем функции?

Что это

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

Как читается

def area(w: int, h: int) -> int:
    return w * h

print(area(3, 4)) # 12

- def area(...) — объявление с именем и параметрами w, h.
- : int после параметра — аннотация типа (Python её не проверяет, но IDE и mypy помогут).
- -> int — что функция возвращает.
- return отдаёт значение наружу. Без return функция возвращает None.

Пример

def discount(price: float, percent: float) -> float:
    return price * (1 - percent / 100)

print(discount(1000, 15)) # 850.0
print(discount(500, 50)) # 250.0

Когда использовать / подводные камни

👍 Если копируешь две одинаковые строки — пора в функцию. Имя функции должно говорить что она делает (area, discount), а не как.
👎 Не делай функцию на 200 строк — разбей на маленькие. И не используй изменяемые значения по умолчанию (def f(xs=[])) — список один на все вызовы и копит мусор.