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

Функция яратинг, у параметр сифатида сон қабул қилсин. Унда шартларни белгиланг, агар сон манфий ёки нолга тенг бўлса, мос истиснолар чиқарилсин. Акc ҳолда сон 3 га кўпайтирилсин.

Задание 2

Яратган функциянгизнинг ишлашини try-except конструкцияси ёрдамида текширинг. Бу жараёнда ўз истинѐларингизни ҳам ушланг.