ფუნქცია გამონაკლისით Python-ში

გამონაკლისების გამოტანა ძალიან მოსახერხებელია, მათი პირობებით ფუნქციებში განსაზღვრა.

შევქმნათ ფუნქცია get_sum, რომელიც დააბრუნებს ელემენტების ჯამს სიიდან მხოლოდ იმ შემთხვევაში, თუ სიის სიგრძე ნაკლებია ან ტოლი 3-ის. წინააღმდეგ შემთხვევაში, გამოვიდეს ჩვენი გამონაკლისი ToBigLength:

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

ახლა გადავცეთ ფუნქციას get_sum სია და გამოვიტანოთ ფუნქციის შედეგი კონსოლში:

pythonlst = [1, 2, 3, 4]

print(get_sum(lst)) # დააბრუნებს 6-ს

ასევე ფუნქციებში შესაძლებელია რამდენიმე ტიპის გამონაკლისის დაჭერა. შევქმნათ კიდევ ერთი კლასის გამონაკლისი ToSmallLength:

pythonclass ToSmallLength(Exception):
  pass

ახლა ფუნქციაში განვსაზღვროთ პირობა, თუ სიის სიგრძე ნულის ტოლია, გამოვიდეს ToSmallLength. თუ არც ერთი გამონაკლისი არ დაიჭირება, დააბრუნოს სიის ყველა ელემენტის ჯამი:

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

მოხერხებულობისთვის შესაძლებელია სია, რომელიც გადაეცემა ფუნქციის პარამეტრს, თავად ფუნქცია და მისი გამოძახება ჩაიფაროს try ბლოკში. ჩვენი ორი გამონაკლისის დაჭერა კი მოვათავსოთ except ბლოკებში:

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

შექმენით ფუნქცია, რომელიც პარამეტრად მიიღებს რიცხვს. მასში განსაზღვრეთ პირობები: თუ რიცხვი უარყოფითია ან ნულის ტოლია, გამოიგდოს შესაბამისი გამონაკლისები. წინააღმდეგ შემთხვევაში რიცხვი გავამრავლოთ 3-ზე.

Задание 2

შეამოწმეთ თქვენ მიერ შექმნილი ფუნქციის მუშაობა try-except კონსტრუქციის გამოყენებით. ამ დროს ასევე დაიჭირეთ თქვენი გამონაკლისები.