D. Контроль параметров

Напишите функцию only_positive_even_sum, которая принимает два параметра и возвращает их сумму.

Если один из параметров не является целым числом, то следует вызвать исключение TypeError.
Если один из параметров не является положительным чётным числом, то следует вызвать исключение ValueError.

Примечание

Ваше решение должно содержать только функции.
В решении не должно быть вызовов требуемых функций.

Пример

Ввод

print(only_positive_even_sum("3", 2.5))

Вывод

Вызвано исключение TypeError

Ввод

print(only_positive_even_sum(-5, 4))

Вывод

Вызвано исключение ValueError

Решение

Простая задача для отработки использования raise.

Проверяем условия и вызываем исключения, если какое-то из условий не соблюдено.
Такое решение представлено первым.

Но можно заодно познакомиться с прекрасными функциями all() и any(). Которые возвращают True если все (all) или хотя бы одно (any) из значений соответствуют условию.

Посмотреть код

Решение

Python
def only_positive_even_sum(*args):
    for item in args:
        if not isinstance(item, int):
            raise TypeError
    for item in args:
        if item <= 0 or item % 2 != 0:
            raise ValueError
    return sum(args)

Решение

Python
def only_positive_even_sum(*args):
    if any([not isinstance(c, int) for c in args]):
        raise TypeError
    elif not all():
        raise ValueError
    else:
        return sum(args)
Подписаться
Уведомить о
guest
2 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии