Напишите функцию 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) из значений соответствуют условию.
Посмотреть код
Решение
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)
Решение
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)