Для целого числа n функция может вернуть n % 2 == 0. Остаток ноль означает, что число делится на два без остатка. Это работает для положительных и отрицательных целых чисел, а также для нуля. Аннотация типа int помогает описать контракт, но сама не проверяет аргумент во время выполнения.
Как написать на Python функцию проверки четности целого числа?
Проверка четности через остаток от деления на два: решение на Python, примеры для нуля и отрицательных чисел и границы входного контракта.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Напишите функцию Python, которая определяет, является ли целое число четным. Результат удобно возвращать как True или False, а не печатать внутри функции.
def is_even(n: int) -> bool:
return n % 2 == 0
Оператор % вычисляет остаток от деления. Если остаток от деления на два равен нулю, число четное.
print(is_even(8)) # True
print(is_even(7)) # False
print(is_even(0)) # True
print(is_even(-4)) # True
print(is_even(-3)) # False
Ноль тоже четный: он представим как 2 * 0. Для отрицательных целых чисел та же проверка работает без отдельной ветки. Нет необходимости преобразовывать число в строку или проверять последнюю цифру.
Что уточнить во входном контракте
В решении предполагается целое число. Аннотация n: int не запрещает передать другой тип во время выполнения. Если аргумент приходит из пользовательского ввода, его нужно отдельно разобрать и проверить на границе приложения. Безусловное преобразование через int() может скрыть ошибку, отбросив дробную часть.
В Python bool является подклассом int, поэтому политика приема True и False тоже относится к контракту. В обычной учебной задаче достаточно зафиксировать целочисленный вход, не усложняя саму проверку.
Для чисел фиксированного размера это постоянное число арифметических операций. Python поддерживает целые произвольной длины, поэтому при строгой битовой оценке стоимость операции зависит от размера представления числа. Главное свойство решения — отсутствие перебора от нуля до n.