⊗pyPmExcFu 82 of 129 menu

Funkce s výjimkou v Pythonu

Výjimky je velmi pohodlné vyhazovat, popisovat je ve funkcích pomocí podmínek.

Pojďme vytvořit funkci get_sum, která vypíše součet prvků seznamu pouze pokud je délka seznamu menší nebo rovna 3. V opačném případě nechť je vyhozena naše výjimka ToBigLength:

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

Nyní předáme funkci get_sum seznam a vypíšeme funkci do konzole:

lst = [1, 2, 3, 4] print(get_sum(lst)) # vypíše 6

Také ve funkcích lze nastavit zachycení několika typů výjimek. Pojďme vytvořit ještě jednu třídu výjimek ToSmallLength:

class ToSmallLength(Exception): pass

Nyní popíšeme ve funkci podmínku, pokud je délka seznamu rovna nule, nechť je vyhozena ToSmallLength. Pokud nebude zachycena žádná výjimka, nechť je vypsán součet všech prvků seznamu:

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

Pro pohodlí lze uzavřít seznam, který bude předán do parametru funkce, samotnou funkci a její volání do bloku try. A zachycení našich dvou výjimek umístíme v blocích except:

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

Vytvořte funkci, která jako parametr bude přijímat číslo. V ní popište podmínky, pokud je číslo záporné a rovno nule, nechť jsou vyhozeny odpovídající výjimky. v opačném případě nechť je číslo vynásobeno 3.

Vyzkoušejte funkci, kterou jste vytvořili, pomocí konstrukce try-except. Při tom také zachyťte vaše výjimky.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout