Co je funkce v Pythonu?
Funkce v jazyce Python je kus kódu, který běží, když je odkazováno. Používá se k využití kódu na více než jednom místě v programu. Také se tomu říká metoda nebo postup. Python poskytuje mnoho vestavěných funkcí, jako je print (), input (), compile (), exec () atd., Ale také poskytuje svobodu při vytváření vlastních funkcí.
V tomto tutoriálu se naučíme
- Jak definovat a volat funkci v Pythonu
- Význam odsazení (prostoru) v Pythonu
- Jak návratová hodnota funkce?
- Argumenty ve funkcích
Jak definovat a volat funkci v Pythonu
Funkce v Pythonu je definována příkazem "def" následovaným názvem funkce a závorkami (())
Příklad:
Definujme funkci pomocí příkazu "def func1 (): a funkci zavoláme. Výstupem funkce bude „Učím se funkci Pythonu“.
Funkce print func1 () volá naši def func1 (): a vytiskne příkaz „ Učím se funkci Pythonu Žádná. “
V Pythonu existuje sada pravidel k definování funkce.
- Veškeré argumenty nebo vstupní parametry by měly být umístěny do těchto závorek
- Příkazem first function může být volitelný příkaz - docstring nebo dokumentační řetězec 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čí funkci, volitelně předá zpět hodnotu volajícímu. Příkaz return bez args je stejný jako návrat None.
Význam odsazení (prostoru) v Pythonu
Než se seznámíme s funkcemi Pythonu, je důležité pochopit pravidlo odsazení pro deklaraci funkcí Pythonu a tato pravidla jsou použitelná pro další prvky Pythonu, stejně jako deklarace podmínek, smyček nebo proměnných.
Python se při definování kódu řídí určitým stylem odsazení, protože funkce Pythonu nemají žádný explicitní začátek nebo konec jako složené závorky k označení začátku a konce funkce, musí se spoléhat na toto odsazení . Zde si vezmeme jednoduchý příklad s příkazem „print“. Když napíšeme funkci „tisk“ přímo pod def func 1 (): Ukáže se „ chyba odsazení: očekává se odsazený blok “.
Když nyní přidáte odsazení (mezeru) před funkci „tisk“, mělo by se tisknout podle očekávání.
Alespoň jedna odrážka stačí k tomu, aby váš kód fungoval úspěšně. Jako osvědčený postup je ale vhodné nechat asi 3-4 odsazení, abyste mohli volat svou funkci .
Je také nutné, abyste při deklarování odsazení museli zachovat stejné odsazení pro zbytek kódu . Například v níže uvedeném snímku obrazovky, když voláme další příkaz „stále ve func1“ a když není deklarován přímo pod prvním tiskovým příkazem, zobrazí se chyba odsazení „unindent neodpovídá žádné jiné úrovni odsazení.“
Nyní, když použijeme stejné odsazení pro oba příkazy a zarovnáme je do stejného řádku, dává očekávaný výstup.
Jak návratová hodnota funkce?
Příkaz Return v Pythonu určuje, jakou hodnotu má vrátit volajícímu funkce.
Pochopme to na následujícím příkladu
Krok 1) Tady - vidíme, když funkce není „návrat“. Například chceme druhou mocninu 4 a při provádění kódu by měla dát odpověď „16“. Což dává, když jednoduše použijeme kód „print x * x“, ale když zavoláme funkci „print square“, dá jako výstup „None“. Je to proto, že když funkci zavoláte, rekurze se nestane a nespadne na konec funkce. Python vrací „Žádný“, pokud selhal na konci funkce.
Krok 2) Aby to bylo jasnější, nahradíme příkaz print příkazem assignment. Pojďme zkontrolovat výstup.
Když spustíte příkaz „print square (4)“, ve skutečnosti vrátí hodnotu objektu, protože zde nemáme žádnou konkrétní funkci, kterou bychom mohli spustit, vrátí „None“.
Krok 3) Nyní zde uvidíme, jak načíst výstup pomocí příkazu „návrat“. Když použijete funkci „návrat“ a spustíte kód, dá výstup „16.“
Krok 4) Funkce v Pythonu jsou samy objektem a objekt má určitou hodnotu. Uvidíme zde, jak Python zachází s objektem. Po spuštění příkazu "print square" vrátí hodnotu objektu. Protože jsme neprošli žádným argumentem, nemáme žádnou konkrétní funkci, kterou bychom zde mohli spustit, vrátí výchozí hodnotu (0x021B2D30), což je umístění objektu. V praktickém programu Python to pravděpodobně nikdy nebudete muset dělat.
Argumenty ve funkcích
Argument je hodnota, která je předána funkci, když je volána.
Jinými slovy na straně volajícího je to argument a na straně funkce je to parametr.
Podívejme se, jak Python Args funguje -
Krok 1) Argumenty jsou deklarovány v definici funkce. Při volání funkce můžete předat hodnoty pro tento args, jak je znázorněno níže
Krok 2) Chcete-li deklarovat výchozí hodnotu argumentu, přiřaďte mu hodnotu při definici funkce.
Příklad: x nemá žádné výchozí hodnoty. Výchozí hodnoty y = 0. Když při volání funkce multiply zadáme pouze jeden argument, Python přiřadí zadanou hodnotu x při zachování hodnoty y = 0. Proto násobení x * y = 0
Krok 3) Tentokrát změníme hodnotu na y = 2 namísto výchozí hodnoty y = 0 a vrátí výstup jako (4x2) = 8.
Krok 4) Můžete také změnit pořadí, ve kterém lze předávat argumenty v Pythonu. Zde jsme obrátili pořadí hodnot x a y na x = 4 a y = 2.
Krok 5) Více argumentů lze také předat jako pole. Tady v příkladu voláme více args (1,2,3,4,5) voláním funkce (* args).
Příklad: Deklarovali jsme více args jako number (1,2,3,4,5), když voláme funkci (* args); vytiskne výstup jako (1,2,3,4,5)
Tipy :
- V Pythonu 2.7. funkce přetížení není v Pythonu podporována. Přetížení funkce je schopnost vytvořit více metod se stejným názvem s jinou implementací. Přetížení funkcí je v Pythonu 3 plně podporováno
- Mezi metodami a funkcemi je značný zmatek. Metody v Pythonu jsou spojeny s instancemi objektů, zatímco funkce nejsou. Když Python volá metodu, váže první parametr tohoto volání na odkaz na příslušný objekt. Jednoduše řečeno, samostatná funkce v Pythonu je „funkce“, zatímco funkce, která je atributem třídy nebo instance, je „metoda“.
Zde je kompletní kód Pythonu 3
#define a functiondef func1():print ("I am learning Python function")print ("still in func1")func1()def square(x):return x*xprint(square(4))def multiply(x,y=0):print("value of x=",x)print("value of y=",y)return x*yprint(multiply(y=2,x=4))
Zde je kompletní kód Pythonu 2
#define a functiondef func1():print " I am learning Python function"print " still in func1"func1()def square(x):return x*xprint square(4)def multiply(x,y=0):print"value of x=",xprint"value of y=",yreturn x*yprint multiply(y=2,x=4)
Souhrn:
Function in Python is a piece of reusable code that is used to perform single, related action. V tomto článku uvidíme
- Funkce definované def prohlášení
- Blok kódu v každé funkci začíná dvojtečkou (:) a měl by být odsazen (mezera)
- Veškeré argumenty nebo vstupní parametry by měly být umístěny do těchto závorek atd.
- Po deklaraci funkce by před kódem mělo zůstat alespoň jedno odsazení
- Stejný styl odsazení by měl být zachován v celém kódu v rámci funkce def
- U osvědčených postupů jsou tři nebo čtyři odrážky považovány za nejlepší před prohlášením
- Pomocí příkazu "return" můžete vrátit hodnoty do volání funkce.
- Pokud argument není dodáván volající funkci, Python vytiskne náhodnou hodnotu jako (0x021B2D30). Příklad „funkce tisku.“
- Na straně volajícího je to argument a na straně funkce je to parametr
- Default value in argument - When we supply only one argument while calling multiply function or any other function, Python assigns the other argument by default
- Python umožňuje také obrátit pořadí argumentu