Функцыя з выключэннем у 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. Пры гэтым таксама перахапіце вашы выключэнні.