Функция — переиспользуемый блок кода. Объявляют через def:
def greet(name): return f"Привет, {name}!"
print(greet("Аня")) # Привет, Аня!
return возвращает результат; если его нет, функция возвращает None. Параметрам можно задать значения по умолчанию:
def power(base, exp=2): return base ** exp
power(5) # 25 (exp=2 по умолчанию) power(5, 3) # 125
Аргументы можно передавать по имени — это нагляднее:
def order(item, qty, gift=False): ... order("книга", qty=3, gift=True)
Функции дробят программу на понятные части: вместо длинного скрипта вы строите его из небольших именованных кусочков, каждый из которых решает одну задачу. Это упрощает чтение, тестирование и повторное использование.