Naučíte sa:

  • Funkcie v jazyku Python
  • Predvolené (default) argumenty
  • Šablóny reťazcov - f string

Prečítajte si

Vypracujte úlohu

Predstavte si, že pracujete v malej pekárni so sviatočnou ponukou: dva koláčiky dostanete za cenu jedného. Jeden z nich sa rozhodnete darovať ďalšej osobe v rade. Keď poznáte jej meno, poviete:

„Jeden pre Janka, jeden pre mňa.“

Samozrejme, nechcete tú istú vetu opakovať ručne pri každom zákazníkovi. Preto si vytvoríte malý stroj, ktorý to urobí za vás. V Pythone sa takýto stroj nazýva funkcia..

Funkcia je jednoducho znovupoužiteľný kus programu. Keď ju raz vytvoríte, môžete ju zavolať vždy, keď ju budete potrebovať.

def two_fer():
    return "Jeden pre teba, jeden pre mňa."
print(two_fer())

Na prvý pohľad sa ani nezdá, že ide o programátorskú úlohu. Celé riešenie sa zmestí na jediný riadok. Napriek tomu sa v tejto malej úlohe skrýva niekoľko dôležitých konceptov jazyka Python. Pri jej riešení sa naučíte, čo sú funkcie, ako fungujú argumenty a parametre funkcií, ako predvolené hodnoty robia funkcie flexibilnejšími a prečo Python programátori radi používajú f-stringy.

Takýto stroj však zakaždým vráti rovnakú vetu. To funguje dovtedy, kým sa prvý zákazník nepredstaví.

Vašim cieľom je napísať funkciu two_fer, ktorá vráti vetu:

Jeden pre Janka, jeden pre mňa.

ak je zadané meno, a

Jeden pre teba, jeden pre mňa.

ak meno zadané nie je. Meno osoby zadávame v tvare, ktorý sa hodí do vety, napríklad Janka, Marienku alebo Ferka.

Do pekárne vojde Janka. Stroj už nemá hovoriť „teba“, ale „Janka“. Funkcia teda musí dostať informáciu z vonkajšieho sveta. Presne na to slúžia argumenty funkcie.

def two_fer(name):
    return f"Jeden pre {name}, jeden pre mňa."

Premenná uvedená v zátvorkách pri definovaní funkcie sa nazýva parameter. Môžete si ju predstaviť ako prázdne miesto, ktoré čaká na vyplnenie. Keď funkciu zavoláte,

two_fer("Janka")

hodnota "Janka" sa vloží do tohto miesta. Táto hodnota sa nazýva argument.

Rozdiel medzi nimi je síce malý, ale dôležitý. Parameter patrí k definícii funkcie, zatiaľ čo argument je konkrétna hodnota, ktorú funkcii odovzdáte pri jej volaní. Predstavte si parameter ako prázdne políčko vo formulári a argument ako údaj, ktorý doň používateľ zapíše.

Vďaka tomu je funkcia oveľa flexibilnejšia. Už nepozná iba jednu vetu, ale dokáže vytvoriť nekonečne veľa rôznych viet.

two_fer("Janka")

vráti

Jeden pre Janka, jeden pre mňa.

a

two_fer("Marienku")

vráti

Jeden pre Marienku, jeden pre mňa.

Všetko funguje výborne, až kým si niekto nevezme koláč bez toho, aby povedal svoje meno.

Čo by sa malo stať v takom prípade?

Ak zavoláte funkciu bez argumentu,

two_fer()

Python oznámi chybu, pretože funkcia očakáva jeden argument, ale žiadny nedostala.

Našťastie Python umožňuje definovať predvolenú hodnotu parametra.

def two_fer(name="teba"):
    return f"Jeden pre {name}, jeden pre mňa."

Teraz sa funkcia správa správne v oboch situáciách. Ak pri volaní zadáte meno, Python použije práve toto meno. Ak meno nezadáte, automaticky použije hodnotu "teba".

two_fer("Janka")

vráti

Jeden pre Janka, jeden pre mňa.

zatiaľ čo

two_fer()

vráti

Jeden pre teba, jeden pre mňa.

Predvolené hodnoty parametrov patria medzi veľmi užitočné vlastnosti Pythonu. Umožňujú navrhovať funkcie, ktoré sa jednoducho používajú v bežných situáciách, pričom stále zostávajú dostatočne flexibilné aj pre zložitejšie prípady.

Teraz sa oplatí pozrieť bližšie na spôsob, akým funkcia vytvára výslednú vetu.

f"Jeden pre {name}, jeden pre mňa."

Malé písmeno f na začiatku označuje formátovaný reťazec, často nazývaný aj f-string. Všetko, čo sa nachádza medzi zloženými zátvorkami {}, Python vyhodnotí a vloží priamo do výsledného textu.

Napríklad

name = "Alice"

print(f"Hello, {name}!")

vypíše

Hello, Alice!

Vo vnútri zložených zátvoriek nemusia byť iba premenné. Môžu tam byť aj výrazy alebo výpočty.

age = 20

print(f"Next year you'll be {age + 1}.")

vypíše

Next year you'll be 21.

Pred zavedením f-stringov programátori často spájali text pomocou operátora + alebo používali staršiu metódu .format(). F-stringy sú kratšie, prehľadnejšie a dnes predstavujú odporúčaný spôsob vytvárania textových reťazcov v modernom Pythone.

Odporúčané čítanie

Previous Post Next Post

Two-fer: dva za cenu jedného