Jak volat funkci v Python (Příklad)

⚡ Chytré shrnutí

Funkce v Python jsou opakovaně použitelné bloky kódu, které se spustí při volání a jsou definovány příkazem def. Přijímají argumenty, vracejí hodnoty a spoléhají se na konzistentní odsazení pro seskupení příkazů patřících ke každé funkci.

  • 🧩 příkaz def: Funkce je definována pomocí def, názvu a závorek, za nimiž následuje dvojtečka, která otevírá odsazený blok příkazů.
  • 📞 Volání funkcí: Zápis názvu funkce následovaného závorkami spustí její kód, takže stejnou logiku lze mnohokrát použít.
  • ⌨️ Odsazení: Python seskupuje tělo funkce konzistentním odsazováním namísto závorek, takže chybějící mezera vyvolá chybu IndentationError.
  • 🎯 argumenty: Hodnoty předané v závorkách se stávají parametry a výchozí hodnoty nebo argumenty klíčových slov činí každé volání flexibilním.
  • ↩️ Návratové hodnoty: Příkaz return předává výsledek zpět volajícímu; bez něj funkce vrací None.
  • 🤖 Asistence AI: Asistenti umělé inteligence, jako je GitHub Copilot, generují kostry funkcí, argumenty a dokumentační řetězce z krátkého promptu.

Jak volat funkci v Python

V čem je Funkce Python?

A Funkce v Python je část kódu, která se spustí, když se na ni odkazuje. Používá se k využití kódu na více než jednom místě v programu. Nazývá se také metoda nebo procedura. Python nabízí mnoho vestavěných funkcí, jako například print(), input(), compile() a exec(), ale také vám dává svobodu vytvářet si vlastní funkce.

Jak definovat a volat funkci v Python

Funkce v Python je definována příkazem „def“, za nímž následuje název funkce a závorky ( () ).

Příklad:

Definujme funkci pomocí příkazu „def func1():“ a zavoláme ji. Výstupem funkce bude „Učím se Python funkce".

Definujte a volejte funkci v Python

Volání funkce func1() vyvolá naši def func1(): a vypíše příkaz „Učím se Python funkce Žádná.“

Existuje soubor pravidel Python programování definovat funkci.

  • Veškeré argumenty nebo vstupní parametry by měly být umístěny v těchto závorkách.
  • První příkaz funkce může být volitelný příkaz – dokumentační řetězec nebo řetězec dokumentace funkce.
  • Kód v každé funkci začíná dvojtečkou (:) a měl by být odsazen (mezera).
  • Příkaz return (výraz) ukončuje funkci a volitelně vrací hodnotu volajícímu. Příkaz return bez argumentů je stejný jako return None.

Význam odsazení (mezera) v Python

Než se seznámíme s Python funkcí, je důležité, abychom rozuměli pravidlu odsazení, které se má deklarovat Python funkce a tato pravidla platí i pro další prvky Python stejně jako deklarování podmínek, cyklů nebo proměnných.

Python používá určitý styl odsazení k definování kódu. Protože Python Funkce nemají žádný explicitní začátek ani konec, jako složené závorky, které by označovaly začátek a konec funkce, musí se spoléhat na toto odsazení. Zde si ukážeme jednoduchý příklad s příkazem „print“. Když napíšeme funkci „print“ přímo pod řádek def func1():, zobrazí se chyba „chyba odsazení: očekáván odsazený blok“.

Definujte a volejte funkci v Python

Nyní, když přidáte odsazení (mezeru) před funkci „print“, mělo by se to vytisknout podle očekávání.

Definujte a volejte funkci v Python

Alespoň jedno odsazení stačí k úspěšnému fungování kódu. Doporučuje se však ponechat asi 3–4 mezery odsazení pro volání funkce.

Je také nutné, abyste při deklaraci odsazení zachovali stejné odsazení pro zbytek kódu. Například na níže uvedeném snímku obrazovky, když zavoláme jiný příkaz „stále ve funkci func1“ a ten není deklarován hned pod prvním příkazem print, zobrazí se chyba odsazení: „unindent neodpovídá žádné jiné úrovni odsazení“.

Definujte a volejte funkci v Python

Když nyní pro oba příkazy použijeme stejné odsazení a zarovnáme je na stejný řádek, dostaneme očekávaný výstup.

Definujte a volejte funkci v Python

Jak funkce vrátí hodnotu?

Příkaz return v Python určuje, jakou hodnotu vrátit volajícímu funkce. Pojďme si to vysvětlit na následujícím příkladu.

Krok 1) Funkce nic nevrací

Zde vidíme, kdy funkce „nevrací“ hodnotu. Například chceme načíst druhou mocninu čísla 4 a po spuštění kódu by měla vrátit hodnotu „16“. Tuto hodnotu vrátíme, když jednoduše použijeme kód „print x*x“, ale když zavoláme funkci „print square“, vrátí jako výstup „None“. Je to proto, že při volání funkce nedochází k rekurzi a funkce spadne na konec funkce. Python vrátí „None“ v případě, že se funkce nedostane na konec.

Definujte a volejte funkci v Python

Krok 2) Nahraďte příkaz print příkazem pro přiřazení

Abychom to upřesnili, nahradíme příkaz print příkazem pro přiřazení. Podívejme se na výstup.

Definujte a volejte funkci v Python

Když spustíte příkaz „print square (4)“, vrátí hodnotu objektu. Protože zde nemáme žádnou specifickou funkci, vrátí „None“.

Krok 3) Použijte funkci 'return' a spusťte kód

Nyní si ukážeme, jak načíst výstup pomocí příkazu „return“. Když použijete funkci „return“ a spustíte kód, zobrazí se výstup „16“.

Definujte a volejte funkci v Python

Krok 4) Spusťte příkaz 'print square'

Funkce v Python jsou samy o sobě objektem a objekt má nějakou hodnotu. Zde uvidíme jak Python ošetřuje objekt. Když spustíte příkaz „print square“, vrátí hodnotu objektu. Protože jsme nepředali žádný argument, nemáme zde žádnou specifickou funkci, kterou bychom zde spustili, takže vrátí výchozí hodnotu (0x021B2D30), což je umístění objektu. V praxi Python program, pravděpodobně to nikdy nebudete muset dělat.

Definujte a volejte funkci v Python

Argumenty ve funkcích

Argument je hodnota, která je předávána funkci při jejím volání.

Jinými slovy, na straně volající funkce je to argument a na straně funkce je to parametr.

Podívejme se jak Python argumenty fungují.

Krok 1) Argumenty jsou deklarovány v definici funkce. Při volání funkce můžete předat hodnoty těchto argumentů, jak je znázorněno níže.

Definujte a volejte funkci v Python

Krok 2) Chcete-li deklarovat výchozí hodnotu pro argument, přiřaďte mu hodnotu v definici funkce.

Definujte a volejte funkci v Python

Příklad: x nemá žádnou výchozí hodnotu. Výchozí hodnota y=0. Pokud při volání funkce násobení zadáme pouze jeden argument, Python přiřadí zadanou hodnotu x, zatímco keeping hodnota y=0. Proto je to násobek x*y=0.

Definujte a volejte funkci v Python

Krok 3) Tentokrát změníme hodnotu na y=2 místo výchozí hodnoty y=0 a výstup se vrátí jako (4×2)=8.

Definujte a volejte funkci v Python

Krok 4) Můžete také změnit pořadí, ve kterém jsou argumenty předávány v PythonZde jsme obrátili pořadí hodnot x a y na x=4 a y=2.

Definujte a volejte funkci v Python

Krok 5) Více argumentů lze také předat jako pole. V tomto příkladu voláme více argumentů (1,2,3,4,5) voláním funkce (*args).

Příklad: Více argumentů jsme deklarovali jako čísla (1,2,3,4,5); když zavoláme funkci (*args), vypíše výstup jako (1,2,3,4,5).

Definujte a volejte funkci v Python

Tip:

  • In Python Ve verzi 2.7 není podporováno přetížení funkcí. Přetížení funkcí je možnost vytvořit více metod se stejným názvem s různou implementací. Přetížení funkcí je plně podporováno v Python 3.
  • Mezi metodami a funkcemi panuje značný zmatek. Metody v Python jsou asociovány s instancemi objektů, zatímco funkce nikoli. Když Python volá metodu, sváže první parametr tohoto volání s odkazem na příslušný objekt. Jednoduše řečeno, samostatná funkce v Python je „funkce“, zatímco funkce, která je atributem třídy nebo instance, je „metodou“.

Zde je kompletní Python 3 kód

#define a function
def func1():
   print ("I am learning Python function")
   print ("still in func1")
   
func1()

def square(x):
  	return x*x
print(square(4))

def multiply(x,y=0):
	print("value of x=",x)
	print("value of y=",y)
    
	return x*y
  
print(multiply(y=2,x=4))

Zde je kompletní Python 2 kód

#define a function
def func1():
   print " I am learning Python function"
   print " still in func1"
   
func1()

def square(x):
  	return x*x
print square(4)

def multiply(x,y=0):
	print"value of x=",x
	print"value of y=",y
    
	return x*y
  
print multiply(y=2,x=4)

Nejčastější dotazy

Ano. A Python Funkce může vrátit více hodnot oddělených čárkami za klíčovým slovem return. Python zabalí je do n-tice, kterou může volající rozbalit do samostatných proměnných, například a, b = func().

Funkce *args shromažďuje dodatečné poziční argumenty do n-tice, zatímco funkce **kwargs shromažďuje dodatečné klíčové argumenty do slovníku. Oba umožňují funkci přijímat proměnný počet vstupů a názvy args a kwargs jsou pouze konvencí, nikoli požadavkem.

Dokumentační řetězec (docstring) je řetězcový literál umístěný jako první příkaz uvnitř funkce, který dokumentuje, co funkce dělá. Je zapsán v uvozovkách a lze jej číst za běhu pomocí atributu __doc__ funkce nebo funkce help().

Lambda je malá anonymní funkce definovaná na jednom řádku s klíčovým slovem lambda namísto def. Hodí se pro krátkou, jednorázovou logiku předávanou funkcím jako map(), filter() a sorted(). Viz toto funkce lambda průvodce.

Ano. Funkce, která volá sama sebe, je rekurzivní funkce. Rekurze řeší problémy, které se rozdělují na menší podobné podproblémy, jako jsou faktoriály. Každá rekurzivní funkce potřebuje základní případ, který volání zastaví, jinak... Python vyvolává chybu RecursionError.

Lokální proměnná se vytvoří uvnitř funkce a existuje pouze tehdy, když je tato funkce spuštěna. Globální proměnná je definována mimo všechny funkce a je viditelná všude. Chcete-li změnit globální proměnnou uvnitř funkce, deklarujte ji nejprve pomocí klíčového slova global.

GitHub Copilot navrhuje kompletní tělo funkce podle jejího názvu nebo krátkého komentáře, včetně parametrů, návratových příkazů a dokumentačních řetězců. Nabízí také zpracování okrajových případů a testování, což vám umožňuje soustředit se na logiku místo na ty.ping standardizované definice bloků.

Funkce organizují kód umělé inteligence a strojového učení do opakovaně použitelných kroků, jako je načítání dat, předzpracování, trénování a vyhodnocení. Udržují experimenty čitelné a testovatelné a frameworky jako TensorFlow a scikit-learn odhalují většinu svého chování prostřednictvím dobře pojmenovaných funkcí, které voláte.

Shrňte tento příspěvek takto: