Функција со исклучок во 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. При тоа, исто така, пресретнете ги вашите исклучоци.