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