⊗pyPmExcFu 82 of 129 menu

Funkcja z wyjątkiem w Pythonie

Wyjątki są bardzo wygodne do wyrzucania, opisując je w funkcjach za pomocą warunków.

Stwórzmy funkcję get_sum, która będzie zwracać sumę elementów listy tylko, jeśli długość listy jest mniejsza lub równa 3. W przeciwnym razie, niech zostanie rzucony nasz wyjątek ToBigLength:

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

Teraz przekażmy do funkcji get_sum listę i wypiszmy wynik funkcji w konsoli:

lst = [1, 2, 3, 4] print(get_sum(lst)) # wyświetli 6

Również w funkcjach można ustawiać przechwytywanie kilku typów wyjątków. Stwórzmy jeszcze jedną klasę wyjątków ToSmallLength:

class ToSmallLength(Exception): pass

Teraz opiszmy w funkcji warunek, jeśli długość listy jest równa zero, to niech zostanie rzucony ToSmallLength. Jeśli nie zostanie przechwycony żaden wyjątek, to niech zostanie zwrócona suma wszystkich elementów listy:

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

Dla wygody można umieścić listę, która będzie przekazywana do parametru funkcji, samą funkcję i jej wywołanie w bloku try. A przechwytywanie naszych dwóch wyjątków umieśćmy w blokach except:

try: lst = [1, 2, 3] res = get_sum(lst) print(res) except ToBigLength: print('error 1') except ToSmallLength: print('error 2')

Stwórz funkcję, która parametrem będzie przyjmować liczbę. W niej opisz warunki, jeśli liczba jest ujemna lub równa zero, to niech zostaną rzucone odpowiednie wyjątki. W przeciwnym razie niech liczba zostanie pomnożona przez 3.

Sprawdź działanie stworzonej przez ciebie funkcji z pomocą konstrukcji try-except. Przy tym również przechwyć twoje wyjątki.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć