Erandiga funktsioon Pythonis
Erandeid on väga mugav visata, neid funktsioonidesse tingimuste abil kirjutades.
Teeme funktsiooni get_sum,
mis väljastab loendi elementide
summa ainult siis, kui loendi pikkus on
väiksem või võrdne 3. Vastasel juhul
visatakse meie erand ToBigLength:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
Nüüd edastame funktsioonile get_sum
loendi ja väljastame funktsiooni konsooli:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # väljastab 6
Funktsioonides saab määrata ka
mitu tüüpi erandeid püüda. Loome
veel ühe erandite klassi ToSmallLength:
class ToSmallLength(Exception):
pass
Nüüd kirjutame funktsiooni tingimuse, et kui
loendi pikkus on võrdne nulliga, siis visatakse
ToSmallLength. Kui ühtki erandit ei püüta,
siis väljastatakse
kõikide loendi elementide summa:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
Mugavuse huvides saab loendi, mis
edastatakse funktsiooni parameetriks,
funktsiooni enda ja selle väljakutse panna try
plokki.
Ja meie kahe erandi püüdmise paigutame
except plokkidesse:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
Looge funktsioon, mis võtab parameetrina
arvu. Kirjutage sellesse tingimused,
et kui arv on negatiivne või võrdne nulliga, siis
visatakse vastavad erandid.
Vastasel juhul korrutatakse arv
3-ga.
Kontrollige loodud funktsiooni tööd
konstruktsiooni try-except abil.
Samal ajal püüdke ka teie erandid.