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:

pythondef 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ę:

pythonlst = [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:

pythonclass 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:

pythondef 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:

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

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.

Задание 2

Patikrinkite sukurtos jūsų funkcijos veikimą naudodami konstrukciją try-except. Be to taip pat perimkite jūsų išimtis.