Funkcija su išimtimi Python kalboje
Išimtis labai patogu mesti, progamuojant jas funkcijose naudojant sąlygas.
Sukurkime funkciją get_sum,
kuri išvestų elementų sumą
sąrašo tik jeigu sąrašo ilgis mažesnis
arba lygus 3. Priešingu atveju,
tegu išmetama mūsų išimtis ToBigLength:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
Dabar perduokime į funkciją get_sum
sąrašą ir išveskime funkciją į konsolę:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # išves 6
Taip pat funkcijose galima nustatyti kelių tipų
išimčių perėmimą. Sukurkime dar vieną išimčių klasę ToSmallLength:
class ToSmallLength(Exception):
pass
Dabar nurodykime funkcijoje sąlygą, jei
sąrašo ilgis lygus nuliui, tegu išmetama
ToSmallLength. Jei nepavyksta perimti
jokios išimties, tegu išvedama
visų sąrašo elementų suma:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
Patogumui galima apjungti sąrašą, kuris
bus perduodamas į funkcijos parametrą,
pačią funkciją ir jos iškvietimą į try bloką.
O mūsų dviejų išimčių perėmimą patalpinkime
except blokuose:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('klaida 1')
except ToSmallLength:
print('klaida 2')
Sukurkite funkciją, kuri parametru bus
priimti skaičių. Joje nurodykite sąlygas,
jei skaičius neigiamas ir lygus nuliui,
tegu išmetamos atitinkamos išimtys.
kitu atveju tegu skaičius bus
padaugintas iš 3.
Patikrinkite sukurtos jūsų funkcijos veikimą
naudodami konstrukciją try-except. Be to
taip pat perimkite jūsų išimtis.