Декомпозиция решения: функции, контракты и повторное использование
Функция — это именованный фрагмент программы, который выполняет отдельную задачу. Функции помогают не повторять код, упрощают проверку решения и делают программу понятнее.
Пример функции:
def is_even(number):
return number % 2 == 0
value = int(input())
if is_even(value):
print('четное')
else:
print('нечетное')Функция is_even получает число и возвращает логический ответ. Основная программа становится короче: она читает значение и использует готовую проверку.
Когда создавать функцию
Функция нужна, если действие повторяется несколько раз или если часть решения можно назвать отдельным смысловым блоком: проверить число, посчитать сумму цифр, нормализовать строку, найти максимум, вывести результат.
def digit_sum(number):
total = 0
while number > 0:
total += number % 10
number //= 10
return total
print(digit_sum(12345))Польза для подготовки
В задачах ОГЭ, ЕГЭ и олимпиад часто приходится комбинировать несколько идей. Функции позволяют проверить каждую идею отдельно. Если ошибка возникла в сумме цифр, ее проще найти в функции digit_sum, чем в длинной программе на сто строк.
Старайтесь давать функциям имена по действию: is_prime, count_digits, normalize_text, find_answer. Хорошее имя работает как комментарий и помогает быстрее возвращаться к решению после перерыва.
Источники
- Босова Л.Л. Информатика. Базовый курс: учебник для 7-9 классов. - М.: БИНОМ. Лаборатория знаний.
- Поляков К.Ю., Еремин Е.А. Информатика. 10-11 классы. Углубленный уровень.
- Python Documentation: The Python Tutorial.