Jako programátor se často přistihnete, že provádíte akci nebo úkol opakovaně. To může být zdlouhavé a zdlouhavé, zejména při práci s velkou nebo složitou kódovou základnou. Jejich automatizace pomocí funkcí je efektivnější přístup k provádění takových úkolů. Funkce vám umožňují napsat logiku kódu jednou a použít ji kdekoli ve vašem programu.
Co je funkce Pythonu?
V Pythonu je funkce blok kódu používaný k provedení konkrétního úkolu. Funkci stačí napsat pouze jednou, ale můžete ji v kódu použít vícekrát. Funkce může přijímat argumenty jako vstupní a vracet výstupní hodnoty. Tento jednoduchý program ukazuje funkci, která vypočítá součet tří čísel:
# Funkce Python pro výpočet součtu tří čísel
defvypočítat_součet(a, b, c):
vrátit se a+b+c
tisknout (vypočítat_součet(1,2,3)) # vrací 6
tisknout (vypočítat_součet(1000, 300,44)) # vrací 1344
tisknout (vypočítat_součet(12, 4,78)) # vrátí 94
V programu výše funkce vrací součet tří argumentů. Když je funkce volána vícekrát, vrací pro každý případ jiný výstup. Užitečnou aplikací pro tuto funkci bude aplikace kalkulačky.
Definování funkce v Pythonu
Python má mnoho vestavěných funkcí k dispozici pro vývojáře. Tyto vestavěné funkce však ne vždy postačují ke splnění požadavků většiny projektů. Chcete-li splnit vlastní požadavky, musíte definovat své vlastní funkce. Definování vlastních funkcí je běžnou praxí v programování.
V Pythonu můžete definovat vlastní funkci pomocí def klíčové slovo následované názvem vaší funkce se závorkami před ním. Zde je příklad:
defnázev_funkce()
Při přiřazování názvu funkce v Pythonu byste měli vzít na vědomí tato pravidla:
- Názvy funkcí by měly být malými písmeny.
- Názvy funkcí by měly být popisné.
- K oddělení slov v názvu funkce použijte podtržítka.
Po definování funkce musíte napsat logiku k provedení požadovaného úkolu. Tato funkce například vypočítá obsah trojúhelníku:
# Funkce Python pro výpočet plochy trojúhelníku
defvypočítat oblast_trojúhelníku(základna, výška):
plocha = (základna * výška)/2
vrátit se plocha
tisknout (vypočítat oblast_trojúhelníku(12, 3))
Výše uvedená funkce definuje dva parametry: základna a výška, vydělí svůj produkt dvěma a vrátí výsledek jako výstup. Můžete napsat jakoukoli logiku, kterou chcete, aby vaše funkce vykonávala.
Porozumění funkčním argumentům
V předchozích příkladech převzaly funkce argumenty k provedení akcí. Argumenty v těchto příkladech jsou známé jako požadované nebo poziční argumenty. V Pythonu mohou být vaše argumenty některé z následujících:
- Poziční argumenty
- Argumenty klíčových slov
Poziční argumenty
Poziční argumenty je třeba předat ve správném pořadí definice. Pokud například definujete funkci s parametry a, b, a C, při volání těchto parametrů musíte odpovídajícím způsobem předat hodnoty. Podívejme se na předchozí příklad:
# Funkce Python pro výpočet součtu tří čísel
defvypočítat_součet(a, b, c):
vrátit se a+b+c
tisknout (vypočítat_součet(1,2,3)) # vrací 6
tisknout (vypočítat_součet(1000, 300,44)) # vrací 1344
tisknout (vypočítat_součet(12, 4,78)) # vrátí 94
Ve výše uvedeném programu je vypočítat_součet() Funkce přebírá tři argumenty, kdykoli ji zavoláme. Každý argument představuje odpovídající parametr. V prvním volání funkce čísla 1, 2, a 3 zastupovat a, b, a C podle toho.
Parametr je deklarován v definici funkce, zatímco argument je hodnota předaná při volání funkce. Tato hodnota je reprezentací odpovídajícího parametru.
Poziční argumenty jsou povinné. Pokud je nepřidáte, získáte a TypeError. Demonstruje to následující příklad:
defvypočítat_součet(a, b, c):
vrátit se a+b+c
tisknout (vypočítat_součet(1,2)) # vyvolá TypeError
Když na svém počítači spustíte výše uvedený program, zobrazí se chyba podobná té na obrázku níže:
Argumenty klíčových slov
Argumenty klíčových slov nemusí být nutně předávány při každém volání funkce. Jsou to volitelné argumenty a nemusí se řídit konkrétním pořadím. Python nám umožňuje používat *args a **kwargs specifikovat argumenty klíčových slov.
Kromě používání *argumenty a **kwargs, je také možné zadat výchozí hodnoty pro vaše argumenty. Tím se neobjeví chyba, pokud zapomenete přidat hodnotu při volání funkce. Tento příklad poskytuje ilustraci:
defvypočítat_součet(a, b, c=3):
vrátit se a+b+c
tisknout (vypočítat_součet(1,2)) # vrací 6
Ve výše uvedeném programu, kdy vypočítat_součet() je voláno, neexistuje žádný argument pro C; to neovlivní program, protože C již má výchozí hodnotu. Můžete zadat výchozí hodnoty pro tolik argumentů, kolik chcete, ale ujistěte se, že to uděláte moudře.
Uspořádejte svůj kód pomocí funkcí
Funkce jsou užitečné pro organizaci kódu, díky čemuž je čitelnější a efektivnější. Pomocí funkcí můžete rozdělit kód na menší, opakovaně použitelné části, které jsou snáze pochopitelné a udržovatelné. Navíc, pokud potřebujete provést změny v kódu, stačí upravit pouze nezbytnou funkci, nikoli celou kódovou základnu.