Funkcia s výnimkou v Pythone

Výnimky je veľmi pohodlné vyhodiť, keď ich v funkcii zapíšeme pomocou podmienok.

Vytvorme funkciu get_sum, ktorá vypíše súčet prvkov zoznamu iba vtedy, ak je dĺžka zoznamu menšia alebo rovná 3. V opačnom prípade nech sa vyhodí naša výnimka ToBigLength:

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

Teraz odovzdajme funkcii get_sum zoznam a vypíšme funkciu do konzoly:

pythonlst = [1, 2, 3, 4]

print(get_sum(lst)) # vypíše 6

Vo funkciách je možné nastaviť aj zachytenie viacerých typov výnimiek. Vytvorme ďalšiu triedu výnimiek ToSmallLength:

pythonclass ToSmallLength(Exception):
  pass

Teraz v funkcii zapíšme podmienku, že ak je dĺžka zoznamu rovná nule, nech sa vyhodí ToSmallLength. Ak sa neodchytí žiadna výnimka, nech sa vypíše súčet všetkých prvkov zoznamu:

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

Pre pohodlie môžeme uzavrieť zoznam, ktorý sa odovzdá do parametra funkcie, samotnú funkciu a jej volanie do bloku try. A zachytenie našich dvoch výnimok umiestnime do blokov except:

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

Vytvorte funkciu, ktorá ako parameter bude prijímať číslo. V nej zapíšte podmienky, ak je číslo záporné a rovné nule, nech sa vyhodia príslušné výnimky. v opačnom prípade nech sa číslo vynásobí 3.

Задание 2

Skontrolujte činnosť vytvorenej funkcie pomocou konštrukcie try-except. Pri tom tiež zachyťte vaše výnimky.