Функция с изключение в Python

Изключенията са много удобни за хвърляне, като се пропишат във функции с помощта на условия.

Нека направим функция get_sum, която ще връща сумата от елементите на списък само, ако дължината на списъка е по-малка или равна на 3. В противен случай, нека се хвърля нашето изключение ToBigLength:

pythondef get_sum(lst):
  if len(lst) <= 3:
    return sum(lst)
  else:
    raise ToBigLength

Сега нека подадем на функцията get_sum списък и да изведем резултата в конзолата:

pythonlst = [1, 2, 3, 4]

print(get_sum(lst)) # ще върне 6

Също така във функции може да се задава прихващане на няколко типа изключения. Нека създадем още един клас изключения ToSmallLength:

pythonclass ToSmallLength(Exception):
  pass

Сега нека пропишем във функцията условие, ако дължината на списъка е нула, тогава нека се хвърли ToSmallLength. Ако не се прихване никое изключение, тогава нека се върне сумата на всички елементи от списъка:

pythondef get_sum(lst):
  if len(lst) > 3:
    raise ToBigLength
  if len(lst) == 0:
    raise ToSmallLength
  else:
    return sum(lst)

За удобство може да се постави списъкът, който ще се подава като параметър на функцията, самата функция и нейното извикване в блок try. А прихващането на нашите две изключения да се разположи в блокове except:

pythontry:
  lst = [1, 2, 3]
  res = get_sum(lst)
  print(res)
except ToBigLength:
  print('error 1')
except ToSmallLength:
  print('error 2')
Задание 1

Създайте функция, която като параметър ще приема число. В нея пропишете условия, ако числото е отрицателно или равно на нула, тогава нека се хвърлят съответните изключения. В противен случай нека числото да бъде умножено по 3.

Задание 2

Проверете работата на създадената от вас функция с помощта на конструкцията try-except. При това също прихванете вашите изключения.