Функција со исклучок во Python
Исклучоците се многу погодни за фрлање, со нивно прописување во функции со помош на услови.
Ајде да направиме функција get_sum,
која ќе ја враќа сумата на елементите
од листата само ако должината на листата е помала
или еднаква на 3. Во спротивно,
нека се фрли нашиот исклучок ToBigLength:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
Сега да ја повикаме функцијата get_sum
со листа и да го испечатиме резултатот во конзола:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # ќе испечати 6
Исто така, во функциите може да се постават
пресретнувања на повеќе типови на исклучоци. Ајде
да создадеме уште една класа на исклучоци ToSmallLength:
class ToSmallLength(Exception):
pass
Сега да пропишеме во функцијата услов, ако
должината на листата е еднаква на нула, тогаш нека се фрли
ToSmallLength. Ако пак не се пресретне
ниту еден исклучок, тогаш нека се врати
сумата на сите елементи во листата:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
За погодност, може да се стави листата, која
ќе се пренесува како параметар на функцијата,
самата функција и нејзиното повикување во блок try.
А пресретнувањата на нашите два исклучоци да ги поставиме
во блоковите except:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
Создадете функција која како параметар ќе
прима број. Во неа пропишете услови,
ако бројот е негативен или еднаков на нула, тогаш
нека се фрлат соодветните исклучоци.
во спротивно нека бројот се
помножи со 3.
Проверете ја работата на создадената функција со
помощ на конструкцијата try-except. При
тоа, исто така, пресретнете ги вашите исклучоци.