Funkce
Doposud jsme veškerý kód psali v app.py, ale jak naše programy rostou, potřebujeme lepší způsob, jak náš kód organizovat. Potřebujeme rozdělit náš kód na menší, lépe spravovatelné a udržitelnější části, které nazýváme funkce. Funkce je kontejner pro několik řádků kódu, které provádějí konkrétní úkol.
Například jste se již dozvěděli o několika vestavěných funkcích v Pythonu print()
a input()
. Každá funkce má svůj účel a ví, jak vykonávat konkrétní úkol. Když tedy vytváříme velké komplexní programy, měli bychom náš kód rozdělit na menší opakovaně použitelné části, tj. funkce.
Pochopme tento koncept vytvořením programu pro tisk uvítací zprávy.
print('Hi there!')
print('Welcome aboard!')
Zde máme jednoduchý program s pouze dvěma řádky kódu. Nyní řekněme, že je budeme potřebovat v jiných programech, abychom je vložili do funkce, kterou můžeme znovu použít.
Dovolte mi představit vyhrazené klíčové slovo def
v Pythonu, což je zkratka pro definovat a používá se k definování funkce.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
Nyní bude tento blok kódu definovat funkci „greet_user
“ s řádky kódů poté. Kdykoli je tato funkce zavolána, provedou se tyto dva řádky. Použijme toto:
print('start')
greet_user()
print('finish')
Program se spouští sekvenčně, což znamená, že byste museli definovat funkci před jejím voláním v programu.
parametry
Definované funkce fungují trochu jinak než vestavěné funkce Pythonu. Například v případě print()
funkce, potřebuje nějaké informace, které chceme vytisknout, ale naše funkce pozdravu žádné informace nebere. Nebylo by hezčí, kdybyste sem mohli předat jméno uživatele a pak místo „ahoj“ vytisknout jméno uživatele?
To lze provést přidáním parametrů do závorek definované funkce. Dovol mi ukázat ti:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
Nyní „name
” uvnitř závorky bude fungovat jako lokální proměnná a při jejím volání můžeme předat jméno uživatele.
greet_user('Shahbaz')
Nyní je parametr name nastaven na „Shahbaz
“. Upravme program, abychom jej mohli používat.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
Důležité je poznamenat, že „jméno“ v prvním řádku se nazývá parametr, zatímco zadaný název, tj. Shahbaz, se nazývá argument.
Pokračujme a spusťte tento program.
Takže s těmito parametry můžeme přijímat informace v našich funkcích.
Teď pojďme udělat něco zajímavého. Řekněme, že chcete do uvítací zprávy přidat další jméno. Je to jednoduché.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
Nyní si všimněte, že když má funkce parametr, jsme povinni předat hodnotu tohoto parametru. Pokud odeberete název z funkce a spustíte program, zobrazí se chyba. V jedné funkci můžete také použít více parametrů oddělených čárkou.
Například, greet_user(first_name, last_name):
. Podobně budou formátovány také argumenty.
Argumenty klíčových slov
Zatím jsme se naučili, že kdykoli definujeme parametry pro naše funkce, měli bychom vždy zadat hodnoty, jinak dostaneme chybu. V posledním programu jsou argumenty 'Shahbaz'
a 'Bhatti'
se nazývají poziční argumenty, což znamená, že na jejich pozici nebo pořadí v programu záleží.
V Pythonu máme další druh argumentu zvaný argumenty klíčových slov, u kterého na pozici nezáleží. Dovolte mi, abych vám ukázal, jak fungují.
Podívejte se na poslední program. Můžeme to upravit 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')
Nyní first_name
a last_name
jsou parametry klíčových slov. Jejich místa můžete prohodit a výsledek bude stejný.
To však neznamená, že bychom měli vždy používat argumenty klíčových slov. Většinu času používáme poziční argumenty, ale v určitých situacích nám tyto argumenty klíčových slov pomáhají zlepšit čitelnost našeho kódu.
Je ještě jedna věc, kterou potřebujete vědět o argumentech klíčových slov. Argumenty klíčového slova by měly vždy následovat za pozičními argumenty.
Prohlášení o vrácení
Zatím jsme se naučili vytvářet funkce a odesílat jim informace pomocí jejich parametrů. Nyní se naučíme, jak vytvářet funkce, které vracejí hodnoty. To je zvláště užitečné, pokud provádíte nějaké výpočty a chcete vrátit výsledek komukoli, kdo používá vaši funkci. Dovol mi ukázat ti.
Definujme funkci, která bude počítat druhou mocninu čísla.
def square(number):
return number*number
Použili jsme příkaz return k vrácení tohoto čísla mimo funkci. Nyní, když zavoláme tuto funkci, vrátí hodnotu stejně jako input()
funkce. Vytiskneme to na terminálu.
Můžete namítnout, že stejného výsledku lze získat i bez použití příkazu return. Pojďme to zkontrolovat.
Vidíme dvě věci, číslo 9 a žádnou. Co se tady děje?
Když interpret Pythonu provede tento kód, nejprve zavolá funkci square a ovládací prvek se přesune na funkci. Zde vypočítáme druhou mocninu tohoto daného čísla a následně jej vytiskneme na terminál.
Nyní ve výchozím nastavení všechny funkce vracejí hodnotu none. Pokud zde tedy nemáme příkaz return, ve výchozím nastavení Python nevrací žádný. Žádný je objekt, který představuje absenci hodnoty. Je to jako nic nebo null v C, C++, Java a Javascript.
Zabalit!
Doufám, že jste pochopili důležitost funkcí.
Jsou významným aspektem učení Pythonu, pokud během své kódovací kariéry plánujete psát velké a složité programy.
Napsat komentář