funkcie
Doteraz sme celý náš kód písali v app.py, ale ako naše programy rastú, potrebujeme lepší spôsob, ako organizovať náš kód. Musíme rozdeliť náš kód na menšie, lepšie spravovateľné a spravovateľnejšie časti, ktoré nazývame funkcie. Funkcia je kontajner pre niekoľko riadkov kódu, ktoré vykonávajú špecifickú úlohu.
Napríklad ste sa už dozvedeli o niekoľkých vstavaných funkciách v Pythone print()
a input()
. Každá funkcia má svoj účel a vie, ako vykonávať špecifickú úlohu. Takže, keď vytvárame veľké komplexné programy, mali by sme náš kód rozdeliť na menšie opakovane použiteľné časti, tj funkcie.
Pochopme tento koncept vytvorením programu na tlač uvítacej správy.
print('Hi there!')
print('Welcome aboard!')
Tu máme jednoduchý program s iba dvoma riadkami kódu. Teraz, povedzme, ich budeme potrebovať v iných programoch, aby sme ich vložili do funkcie, ktorú môžeme znova použiť.
Dovoľte mi predstaviť vyhradené kľúčové slovo def
v Pythone, čo je skratka pre define a používa sa na definovanie funkcie.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
Teraz bude tento blok kódu definovať funkciu “greet_user
“ s riadkami kódov za tým. Pri každom volaní tejto funkcie sa vykonajú tieto dva riadky. Využime toto:
print('start')
greet_user()
print('finish')
Program sa vykonáva sekvenčne, čo znamená, že by ste museli definovať funkciu pred jej volaním v programe.
parametre
Definované funkcie fungujú trochu inak ako vstavané funkcie Pythonu. Napríklad v prípade print()
funkcia, vyžaduje nejaké informácie, ktoré chceme vytlačiť, ale naša funkcia pozdravu neberie žiadne informácie. Nebolo by krajšie, keby ste sem mohli zadať meno používateľa a potom namiesto „ahoj“ vytlačiť meno používateľa?
Môžete to urobiť pridaním parametrov do zátvoriek definovanej funkcie. Ukážem ti:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
Teraz „name
” v zátvorke bude fungovať ako lokálna premenná a pri jej volaní môžeme odovzdať meno používateľa.
greet_user('Shahbaz')
Teraz je parameter name nastavený na „Shahbaz
“. Upravme program, aby sme ho mohli používať.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
Dôležité je poznamenať, že „meno“ v prvom riadku sa nazýva parameter, zatiaľ čo zadaný názov, tj Shahbaz, sa nazýva argument.
Poďme ďalej a spustite tento program.
Takže s týmito parametrami môžeme prijímať informácie v našich funkciách.
Teraz urobme niečo zaujímavé. Povedzme, že chcete do uvítacej správy pridať ďalšie meno. Je to jednoduché.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
Teraz si všimnite, že keď má funkcia parameter, sme povinní odovzdať hodnotu tohto parametra. Ak odstránite názov z funkcie a spustíte program, zobrazí sa chyba. V jednej funkcii môžete použiť aj viacero parametrov oddelených čiarkou.
Napríklad, greet_user(first_name, last_name):
. Podobne budú formátované aj argumenty.
Argumenty kľúčových slov
Doteraz sme sa naučili, že vždy, keď definujeme parametre pre naše funkcie, mali by sme vždy zadať hodnoty, inak dostaneme chybu. V poslednom programe sú argumenty 'Shahbaz'
a 'Bhatti'
sa nazývajú pozičné argumenty, čo znamená, že na ich pozícii alebo poradí v programe záleží.
V Pythone máme ďalší druh argumentu nazývaný argumenty kľúčových slov, pre ktorý na pozícii nezáleží. Ukážem vám, ako fungujú.
Pozrite si posledný program. Môžeme to upraviť takto:
def greet_user(first_name, last_name):
print(f'Hi {first_name} {last_name}')
print('Welcome aboard!')
print('start')
greet_user(first_name='Shahbaz', last_name='Bhatti')
print('finish')
Teraz first_name
a last_name
sú parametre kľúčových slov. Môžete si ich miesta vymeniť a výsledok bude rovnaký.
To však neznamená, že by sme mali vždy používať argumenty kľúčových slov. Väčšinu času používame pozičné argumenty, ale v určitých situáciách nám tieto argumenty kľúčových slov pomáhajú zlepšiť čitateľnosť nášho kódu.
Je tu ešte jedna vec, ktorú potrebujete vedieť o argumentoch kľúčových slov. Argumenty kľúčového slova by mali vždy nasledovať po pozičných argumentoch.
Vyhlásenie o vrátení
Doteraz sme sa naučili vytvárať funkcie a posielať im informácie pomocou ich parametrov. Teraz sa naučíme, ako vytvárať funkcie, ktoré vracajú hodnoty. Toto je obzvlášť užitočné, ak robíte nejaké výpočty a chcete vrátiť výsledok komukoľvek, kto používa vašu funkciu. Ukážem ti.
Definujme funkciu, ktorá vypočíta druhú mocninu čísla.
def square(number):
return number*number
Na vrátenie tohto čísla mimo funkcie sme použili príkaz return. Teraz, ak zavoláme túto funkciu, vráti hodnotu ako input()
funkciu. Vytlačíme to na termináli.
Môžete namietať, že rovnaký výsledok možno získať aj bez použitia príkazu return. Poďme si to overiť.
Vidíme dve veci, číslo 9 a žiadnu. čo sa tu deje?
Keď interpret Pythonu vykoná tento kód, najskôr zavolá funkciu square a ovládací prvok sa presunie na funkciu. Tu vypočítame druhú mocninu tohto daného čísla a potom ho vytlačíme na termináli.
Teraz štandardne všetky funkcie vracajú hodnotu none. Takže ak tu nemáme príkaz return, Python štandardne nevracia žiadny. Žiadny je objekt, ktorý predstavuje absenciu hodnoty. Je to ako nič alebo nula v C, C++, Java a Javascript.
Zabaliť!
Dúfam, že ste pochopili dôležitosť funkcií.
Sú významným aspektom učenia Pythonu, ak plánujete počas svojej kódovacej kariéry písať veľké a zložité programy.
Nechaj odpoveď