Funksie met Uitsondering in Python

Uitsonderings is baie gerieflik om te gooi, deur dit in funksies met behulp van voorwaardes te skryf.

Kom ons maak 'n funksie get_sum, wat die som van die elemente van 'n lys sal teruggee, slegs as die lengte van die lys kleiner as of gelyk aan 3 is. Andersins, laat ons eie uitsondering ToBigLength gegooi word:

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

Laat ons nou 'n lys aan die funksie get_sum oordra en die resultaat in die konsole druk:

pythonlst = [1, 2, 3, 4]

print(get_sum(lst)) # sal 6 druk

In funksies kan jy ook die onderskepping van verskeie tipes uitsonderings spesifiseer. Kom ons skep nog 'n uitsonderingsklas ToSmallLength:

pythonclass ToSmallLength(Exception):
  pass

Laat ons nou in die funksie 'n voorwaarde skryf: as die lengte van die lys gelyk is aan nul, moet ToSmallLength gegooi word. As geen uitsondering onderskep word nie, moet die som van alle elemente in die lys teruggegee word:

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

Vir gerief kan jy die lys wat aan die funksie se parameter oorgedra word, die funksie self, en die aanroep daarvan, in 'n try-blok plaas. En die onderskepping van ons twee uitsonderings kan in except-blokke geplaas word:

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

Skep 'n funksie wat 'n getal as parameter sal aanvaar. Skryf daarin voorwaardes: as die getal negatief is of gelyk is aan nul, moet ooreenstemmende uitsonderings gegooi word. Andersins moet die getal met 3 vermenigvuldig word.

Задание 2

Toets die werking van jou geskepte funksie met behulp van die try-except-konstruksie. Onderskep ook jou uitsonderings.