Python-da Istiýa Funksiýasy

Istiýalary, funksiýalaryň içinde şertler bilen düzüp, atmak aýratyn amatlydyr.

Geliň, <get_sum> atly bir funksiýa düzeliň, bu funksiýa diňe sanawyň uzynlygy <3>den kiçi ýa-da deň bolanda sanawyň elementleriniň jemyny çykarsyn. Beýle bolmadyk ýagdaýda, biz ýasan <ToBigLength> istisnamyz atylsyn:

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

Indi <get_sum> funksiýasyna bir sanawy geçirip, funksiýany konsola çykaralyň:

pythonlst = [1, 2, 3, 4]

print(get_sum(lst)) # 6 çykarar

Şeýle-de, funksiýalarda birnäçe tipdäki istisnalary ýakalap bolýar. Geliň ýene bir <ToSmallLength> atly ýagdaý klasyny düzeliň:

pythonclass ToSmallLength(Exception):
  pass

Indi funksiýada şert düzeliň, eger sanawyň uzynlygy nola deň bolsa, <ToSmallLength> atylsyn. Eger hiç hili ýagdaý ýakalanmasa, sanawyň ähli elementleriniň jemi çykarylmaly:

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

Amatlylygy üçin, funksiýanyň parametrine geçiriler sanawy, funksiýanyň özi we ony çagyrmagy <try> blogyna goýup bolar. Iki sany ýagdaýymyzy bolsa <except> bloklarynda ýerleşdireris:

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

Parametr hökmünde bir san alyp, şol sany çarpan funksiýa düzüň. Oňa şertleri düzüň, eger san menfi ýa-da nola deň bolsa, degşilikde ýagdaýlar atylmaly. Beýle bolmadyk ýagdaýda san <3>e köpeldilmeli.

Задание 2

Ýasan funksiýaňyzyň işini <try-except> gurluşy bilen barlaň. Bu ýagdaýda-da öz ýagdaýlaryňyzy ýakalaň.