Čo je funkcia v Pythone?
Funkcie v jazyku Python je kus kódu, ktorý beží, keď sa odkazuje. Používa sa na využitie kódu na viac ako jednom mieste v programe. Hovorí sa mu aj metóda alebo postup. Python poskytuje mnoho zabudovaných funkcií ako print (), input (), compile (), exec () atď., Ale dáva slobodu aj pri vytváraní vlastných funkcií.
V tomto návode sa naučíme
- Ako definovať a zavolať funkciu v Pythone
- Dôležitosť odsadenia (medzery) v Pythone
- Aká je návratová hodnota funkcie?
- Argumenty vo funkciách
Ako definovať a zavolať funkciu v Pythone
Funkcia v Pythone je definovaná príkazom „def“, za ktorým nasleduje názov funkcie a zátvorky (())
Príklad:
Definujme funkciu pomocou príkazu „def func1 ():“ a zavolajme ju. Výstupom funkcie bude „Učím sa funkciu Python“.
Funkcia print func1 () volá našu def func1 (): a vytlačí príkaz „ Učím sa funkciu Python None. “
V Pythone existuje sada pravidiel na definovanie funkcie.
- Akékoľvek argumenty alebo vstupné parametre by mali byť umiestnené v týchto zátvorkách
- Príkazom first function môže byť voliteľný príkaz- docstring alebo dokumentačný reťazec funkcie
- Kód v každej funkcii začína dvojbodkou (:) a mal by byť odsadený (medzera)
- Príkaz return (výraz) ukončí funkciu a voliteľne vráti hodnotu späť volajúcemu. Príkaz return bez argumentov je rovnaký ako príkaz return None.
Dôležitosť odsadenia (medzery) v Pythone
Predtým, ako sa oboznámime s funkciami Pythonu, je dôležité, aby sme pochopili pravidlo odsadenia, ktoré deklaruje funkcie Pythonu, a tieto pravidlá sú použiteľné pre ďalšie prvky Pythonu, rovnako ako deklarovanie podmienok, cyklov alebo premenných.
Python sa pri definovaní kódu riadi zvláštnym štýlom odsadenia, pretože funkcie Pythonu nemajú žiadny explicitný začiatok alebo koniec ako zložené zátvorky na označenie začiatku a konca funkcie, musia sa spoliehať na toto odsadenie . Tu si vezmeme jednoduchý príklad s príkazom „print“. Keď napíšeme funkciu „tlač“ priamo pod def func 1 (): zobrazí sa „ chyba odsadenia: očakáva sa odsadený blok “.
Keď teraz pridáte odsadenie (medzeru) pred funkciu „tlač“, malo by sa vytlačiť podľa očakávania.
Na úspešné fungovanie vášho kódu stačí minimálne jedna zarážka. Ako najlepší postup sa však odporúča nechať asi 3-4 zarážky, aby ste zavolali svoju funkciu .
Je tiež potrebné, aby ste pri deklarovaní odsadenia zachovali rovnakú zarážku pre zvyšok svojho kódu . Napríklad v nasledujúcom snímku obrazovky, keď voláme ďalšie vyhlásenie „stále vo funkcii func1“ a keď nie je deklarované priamo pod prvým vyhlásením o tlači, zobrazí sa chyba odsadenia „zrušenie odsadenia nezodpovedá inej úrovni odsadenia.“
Teraz, keď použijeme rovnaké odsadenie pre oba príkazy a zarovnáme ich do rovnakého riadku, poskytne očakávaný výstup.
Aká je návratová hodnota funkcie?
Príkaz Return v Pythone určuje, akú hodnotu má vrátiť volajúcemu funkcie.
Poďme to pochopiť na nasledujúcom príklade
Krok 1) Tu - uvidíme, keď funkcia nie je „návratová“. Napríklad chceme štvorček 4 a pri spustení kódu by mal dať odpoveď „16“. Čo dáva, keď jednoducho použijeme kód „print x * x“, ale keď zavoláte funkciu „print square“, dá ako výstup „Žiadne“. Je to preto, že keď voláte funkciu, rekurzia sa nestane a nespadne na koniec funkcie. Python vráti "Žiadne" za zlyhanie pri ukončení funkcie.
Krok 2) Aby bolo toto jasnejšie, nahradíme príkaz print príkazom assignment. Skontrolujeme výstup.
Keď spustíte príkaz „print square (4)“, v skutočnosti vráti hodnotu objektu, pretože tu nemáme žiadnu konkrétnu funkciu, ktorá by prebehla, vráti „None“.
Krok 3) Teraz tu uvidíme, ako načítať výstup pomocou príkazu „návrat“. Keď použijete funkciu „návrat“ a spustíte kód, bude mať výstup „16.“
Krok 4) Funkcie v Pythone sú samy objektom a objekt má svoju hodnotu. Uvidíme tu, ako Python zaobchádza s objektom. Po spustení príkazu „print square“ vráti hodnotu objektu. Pretože sme neprešli žiadnym argumentom, nemáme žiadnu konkrétnu funkciu, ktorá by tu prebehla, vráti predvolenú hodnotu (0x021B2D30), ktorá je umiestnením objektu. V praktickom programe Python to pravdepodobne nikdy nebudete musieť robiť.
Argumenty vo funkciách
Argument je hodnota, ktorá sa odovzdá funkcii, keď sa volá.
Inými slovami, na strane volajúceho je to argument a na strane funkcie je to parameter.
Pozrime sa, ako Python Args funguje -
Krok 1) Argumenty sú deklarované v definícii funkcie. Pri volaní funkcie môžete odovzdať hodnoty pre tento argument, ako je uvedené nižšie
Krok 2) Ak chcete deklarovať predvolenú hodnotu argumentu, priraďte mu hodnotu pri definícii funkcie.
Príklad: x nemá žiadne predvolené hodnoty. Predvolené hodnoty y = 0. Keď pri volaní funkcie multiplikujeme iba jeden argument, Python priradí dodanú hodnotu x, zatiaľ čo hodnotu y = 0 zachová. Preto násobenie x * y = 0
Krok 3) Tentokrát zmeníme hodnotu na y = 2 namiesto predvolenej hodnoty y = 0 a vráti výstup ako (4x2) = 8.
Krok 4) Môžete tiež zmeniť poradie, v ktorom môžu byť argumenty odovzdávané v Pythone. Tu sme obrátili poradie hodnoty x a y na x = 4 a y = 2.
Krok 5) Ako pole je možné predložiť aj viac argumentov. Tu v príklade nazývame viacnásobné args (1,2,3,4,5) volaním funkcie (* args).
Príklad: Viaceré argy sme deklarovali ako číslo (1,2,3,4,5), keď voláme funkciu (* args); vypíše výstup ako (1,2,3,4,5)
Tipy :
- V Pythone 2.7. preťaženie funkcií nie je v Pythone podporované. Preťaženie funkcií je schopnosť vytvárať viac metód rovnakého názvu s odlišnou implementáciou. Preťaženie funkcií je v Pythone 3 plne podporované
- Medzi metódami a funkciami je dosť zmätok. Metódy v Pythone sú spojené s inštanciami objektov, zatiaľ čo funkcia nie. Keď Python volá metódu, viaže prvý parameter tohto volania na odkaz na príslušný objekt. Jednoduchými slovami, samostatná funkcia v Pythone je „funkcia“, zatiaľ čo funkcia, ktorá je atribútom triedy alebo inštancie, je „metóda“.
Tu 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))
Tu 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)
Zhrnutie:
Funkcia v Pythone je časť opakovane použiteľného kódu, ktorá sa používa na vykonávanie jednej súvisiacej akcie. V tomto článku uvidíme
- Funkcia definovaná príkazom def
- Blok kódu v každej funkcii začína dvojbodkou (:) a mal by byť odsadený (medzera)
- Akékoľvek argumenty alebo vstupné parametre by mali byť uvedené v týchto zátvorkách atď.
- Po deklarácii funkcie by pred kódom mala zostať aspoň jedna zarážka
- Rovnaký štýl odsadenia by sa mal zachovať v celom kóde v rámci funkcie def
- V prípade najlepších postupov sa za vyhlásenie pred vyhlásením považujú tri alebo štyri zarážky
- Príkazom "návrat" môžete vrátiť hodnoty do volania funkcie.
- Python vytlačí náhodnú hodnotu ako (0x021B2D30), keď argument nie je dodaný volajúcej funkcii. Príklad „funkcia tlače“.
- Na strane volajúcich je to argument a na strane funkcií je to parameter
- Predvolená hodnota v argumente - Keď pri volaní funkcie multiply alebo akejkoľvek inej funkcie zadáme iba jeden argument, Python predvolene priradí druhý argument
- Python vám tiež umožňuje obrátiť poradie argumentu