Pythonda Istisno bilan ishlash

Istisnolarni shartlar yordamida funktsiyalarda belgilash orqali ulash juda qulay.

Keling, get_sum funktsiyasini yarataylik, u faqat ro'yxat uzunligi 3 dan kichik yoki teng bo'lganda ro'yxat elementlari yig'indisini chiqarsin. Aks holda, bizning ToBigLength istisnomiz chiqarilsin:

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

Endi get_sum funktsiyasiga ro'yxat o'tkazamiz va funktsiyani konsolga chiqaramiz:

pythonlst = [1, 2, 3, 4]

print(get_sum(lst)) # 6 ni chiqaradi

Shuningdek, funktsiyalarda bir nechta istisno turlarini ushlashni belgilash mumkin. Keling yana bir ToSmallLength istisno sinfini yaratamiz:

pythonclass ToSmallLength(Exception):
  pass

Endi funktsiyada shartni belgilaymiz, agar ro'yxat uzunligi nolga teng bo'lsa, ToSmallLength chiqarilsin. Agar hech qanday istisno ushlanmasa, ro'yxatning barcha elementlari yig'indisi chiqarilsin:

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

Qulaylik uchun funktsiyaning parametriga o'tkaziladigan ro'yxatni, funktsiyaning o'zini va uning chaqiruvini try blokiga o'rash mumkin. Ikki istisnomizni ushlashni esa except bloklarida joylashtiramiz:

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

Parametr sifatida son qabul qiladigan funktsiya yarating. Unda shartlarni belgilang, agar son manfiy yoki nolga teng bo'lsa, mos ravishda istisnolar chiqarilsin. Aks holda son 3 ga ko'paytirilsin.

Задание 2

Yaratgan funktsiyangizning ishlashini try-except konstruksiyasi yordamida tekshiring. Bunda istisnolaringizni ham ushlang.