Funkcija ar izņēmumu Python

Izņēmumus ir ļoti ērti mest, prognozējot tos funkcijās ar nosacījumu palīdzību.

Izveidosim funkciju get_sum, kas izvadīs saraksta elementu summu tikai tad, ja saraksta garums ir mazāks vai vienāds ar 3. Pretējā gadījumā, lai tiek mests mūsu izņēmums ToBigLength:

pythondef get_sum(lst):
  if len(lst) <= 3:
    return sum(lst)
  else:
    raise ToBigLength

Tagad padodam funkcijā get_sum sarakstu un izvadām funkciju konsolē:

pythonlst = [1, 2, 3, 4]

print(get_sum(lst)) # izvadīs 6

Arī funkcijās var iestatīt vairāku izņēmumu tipu pārtveršanu. Izveidosim vēl vienu izņēmumu klasi ToSmallLength:

pythonclass ToSmallLength(Exception):
  pass

Tagad funkcijā norādīsim nosacījumu, ja saraksta garums ir vienāds ar nulli, tad lai tiek mests ToSmallLength. Ja nevienu izņēmumu netiks noķerts, tad lai tiek izvadīta visu saraksta elementu summa:

pythondef get_sum(lst):
  if len(lst) > 3:
    raise ToBigLength
  if len(lst) == 0:
    raise ToSmallLength
  else:
    return sum(lst)

Ērtības labad varat ievietot sarakstu, kas tiks padots funkcijas parametrā, pašu funkciju un tās izsaukumu try blokā. Bet mūsu divu izņēmumu pārtveršanu ievietosim except blokos:

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

Izveidojiet funkciju, kas parametrā paņems skaitli. Tajā norādiet nosacījumus, ja skaitlis ir negatīvs un vienāds ar nulli, tad lai tiek mesti atbilstošie izņēmumi. pretējā gadījumā lai skaitlis tiek reizināts ar 3.

Задание 2

Pārbaudiet jūsu izveidotās funkcijas darbību ar try-except konstrukcijas palīdzību. Šajā gadījumā arī pārtveriet savus izņēmumus.