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 құрылымы арқылы тексеріңіз. Сонымен бірге ерекшеліктеріңізді де ұстап қалдырыңыз.