Lecture Thumbnail

Podmienky - logické rozhodovanie programu

Náš program začne premýšľať. Pomocou podmienok určíš, ktorá časť kódu sa má vykonať a ktorá sa má preskočiť.

Ako programy rozmýšľajú

Na to aby programy riešili komplexné úlohy, tak musia vedieť podľa určitých podmienok rozmýšľať. Napríklad, keď nakupujete na e-shopoch, tak na základe počtu kusov na sklade sa zobrazia rôzne texty pod produktami - vypredaný, zostáva 5ks, atď. V tomto príklade vieme vyvodiť podmienky na základe ktorých sa určil zobrazený text. Teda, ak je počet kusov rovný nule, povieme používateľovi, že produkt je vypredaný. Ak je počet viac ako nula, zobrazíme ho. Na takomto princípe fungujú všetky podmienky, teda ak niečo platí, tak sa vykoná toto, ak nie vykoná sa niečo iné

V podmienkach je používaný dátový typ bool, logická jednotka, ktorá buď platí alebo nie. Pripomeňme si jeho hodnoty - True a False.

Namiesto textu podmienka by sme napísali našu podmienku (je užívateľ prihlásený, je počet kusov viac ako 5, ...) s dvojbodkou na konci. Potom v ďalšom riadku, ktorý musí byť odsadený, by sme napísali kód, ktorý sa spustí. Pozor na to, že tento kód musí byť odsadený, obyčajne sa na to využíva klávesa TAB.

Komentáre v Pythone

  1. Určite si si všimol v predchádzajúcom bloku kódu zelený text, pred ktorým je # (hashtag). Toto sa v programovaní nazýva komentár, vďaka ktorému vieme písať text, ktorý je určený čisto pre vysvetlenie kódu.
  2. Akýkoľvek text za # sa neinterpretuje a nespustí sa ako kód.

Operátory porovnávania

Pre tvorenie podmienok potrebujeme poznať operátory porovnávania. 

Rovná sa, nerovná sa (ekvivalencia)

Toto sú jedny z najviac využívaných operátorov. Rovná sa zapisujeme pomocou dvoch symbolov == (rovná sa). Pozor, ak by sme použili len jedno, Python by si myslel, že chceme priradiť hodnotu ku premennej.

Nerovná sa zapisujeme pomocou != (výkričník a rovná sa). Je to ako keď v matematike prečiarkneš znak rovná sa, len takýto znak neexistuje na klávesnici, tak sa zapisuje pomocou dvoch.

Väčší ako, menší ako, ...

V tabuľke nižšie sú všetky operácie, aj s príkladmi, ktoré tvoria podmienku z počtu. Sú používané s dátovými typmi int a float. Tieto operátory sú rovnaké ako tie z matematiky.

Názov Operátor Príklad
Väčší ako > if x > 50:
Menší ako < if zadany_vek < 18:
Väčší ako alebo rovný >= if body >= 90:
Menší ako alebo rovný <= if dlzka_spravy <= 10:

Čo ak podmienka neplatí?

Predstavme si, že chceme podľa veľkosti čísla vypísať dve rôzne správy. Ak číslo bude väčšie ako 50, vypíšeme, že číslo je moc veľké. Inak ak bude menšie ako alebo rovné 50, vypíšeme, že číslo má ideálnu veľkosť.

V takomto "buď-alebo" scenári, využijeme if a else. Pomocou else vieme rozšíriť podmienku tak, že keď naša podmienka je neplatná, tak sa spustí blok spadajúci pod else.

Skús si v rámci mini-cvičenia zmeniť túto podmienku. Napríklad, aby sa vypísala správa "Číslo je moc veľké.", len ak sa cislo rovná alebo je väčšie ako 100 (alebo akékoľvek iné číslo). Môžeš skúsiť celý program prepísať, aby sa vypísala správa "Číslo je moc malé." namiesto "Číslo je moc veľké." - musel by si podmienku zmeniť na operátor menší ako (resp. menší ako alebo rovný) a zmeniť vypísanú správu.

Podmienky v podmienkach

Spolu s if a else vieme tvoriť ďalšie podmienky vo vnútri týchto blokov. V tomto príklade, ak sa cislo rovná nule, tak na to upozorníme. Ak sa nule nerovná, spustí sa naša originálna podmienka. Takýmto spôsobom vieme tvoriť komplexné podmienky.

Pozor na odsadzovanie!

Bloky kódu musia byť správne odsadené. Dávaj pozor, aby si nemal dve podmienky hneď pod sebou alebo aby si pod príazom if (resp. else) mal odsadený aspoň 1 riadok kódu. V prípade, že máš zle odsadený kód, tak Python vyhodí indentation error.

6. Podmienky II. - vetvenie a komplexná logika