Funksjon med unntak i Python

Unntak er veldig praktiske å kaste, ved å definere dem i funksjoner ved hjelp av betingelser.

La oss lage en funksjon get_sum, som skal returnere summen av elementene i en liste bare hvis lengden på listen er mindre enn eller lik 3. Ellers, la vårt eget unntak ToBigLength kastes:

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

La oss nå sende en liste til funksjonen get_sum og skrive ut resultatet til konsollen:

pythonlst = [1, 2, 3, 4]

print(get_sum(lst)) # vil skrive ut 6

Man kan også håndtere flere typer unntak i funksjoner. La oss opprette en unntaksklasse til ToSmallLength:

pythonclass ToSmallLength(Exception):
  pass

La oss nå definere en betingelse i funksjonen: hvis lengden på listen er null, skal ToSmallLength kastes. Hvis ingen unntak blir kastet, skal summen av alle elementene i listen returneres:

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

For enkelhets skyld kan vi sette inn listen som skal sendes til funksjonens parameter, selve funksjonskallet og utskriften i en try-blokk. Og håndteringen av våre to unntak plasserer vi i except-blokkene:

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

Opprett en funksjon som tar imot et tall som parameter. I den, definer betingelser: hvis tallet er negativt eller lik null, så la de tilsvarende unntakene kastes. Ellers, la tallet bli multiplisert med 3.

Задание 2

Test funksjonen du har opprettet ved hjelp av try-except-konstruksjonen. Håndter også unntakene dine i denne konstruksjonen.