Porovnávání

Pamatuješ si ještě, co je to operátor?

V domácím projektu jsme si ukázali základní aritmetické operátory. Přidáme-li jeden další (//), jsou to tyhle:

Symbol Příklad Popis
+, -, *, / 1 + 1 Základní aritmetika
- -5 Negace
//; % 7 // 2; 7 % 2 Dělení se zbytkem (celočíselné dělení); zbytek
** 3 ** 2 Umocnění (3 na druhou)

Python ale zná i další druhy operátorů. Důležité jsou operátory porovnávací. Zkus si co dělají! (Buď z programu pomocí print, nebo pusť python z příkazové řádky.)

Symbol Příklad Popis
==, != 1 == 1, 1 != 1 Je rovno, není rovno
<, > 3 < 5, 3 > 5 Větší než, menší než
<=, >= 3 <= 5, 3 >= 5 Větší nebo rovno, menší nebo rovno

Hodnoty provnání jsou takzvané booleovské hodnoty (angl. boolean, podle G. Boolea). V Pythonu se používají vždycky, když potřebujeme vědět, jestli něco platí nebo neplatí. Jsou jenom dvě – buď True (pravda), nebo False (nepravda).

Jako všechny hodnoty, True a False se dají přiřazovat do proměnných:

pravda = 1 < 3
print(pravda)

nepravda = 1 == 3
print(nepravda)

Všimni si, že rovnost se zjišťuje pomocí dvou rovnítek: 3 == 3. Jedno rovnítko přiřazuje do proměnné; dvě rovnítka porovnávají.

Slova True a False jdou v programu použít i přímo, jen je potřeba dávat pozor na velikost písmen:

print(True)
print(False)

Podmínky

Teď oprášíme program na výpočet obvodu a obsahu.

Otevři si v editoru nový soubor. Jestli ještě v adresáři, kde máš soubory ke kurzům Pythonu, nemáš adresář pro tuto lekci (třeba 02), vytvoř si ho. Nový soubor ulož do něj pod jménem if.py.

Do souboru pak napiš následující program:

strana = float(input('Zadej stranu čtverce v centimetrech: '))
print('Obvod čtverce se stranou', strana, 'je', 4 * strana, 'cm')
print('Obsah čtverce se stranou', strana, 'je', strana * strana, 'cm2')

Program spusť. Funguje?

Co se stane, když jako stranu zadáš záporné číslo? Dává výstup smysl?

Tady je vidět, jak počítač dělá přesně, co se mu řekne. Nepřemýšlí o významu. Bylo by dobré uživateli, který zadá záporné číslo, přímo říct, že zadal blbost. Jak na to?

Nejdřív zkus nastavit proměnnou která bude True, když uživatel zadal kladné číslo.

Řešení

A nyní řekneme počítači, aby tuhle proměnnou použil. K tomu se používá dvojice příkazů if (pokud) a else (jinak). Nejlepší bude je ukázat na příkladu:

strana = float(input('Zadej stranu čtverce v centimetrech: '))
cislo_je_spravne = strana > 0

if cislo_je_spravne:
    print('Obvod čtverce se stranou', strana, 'je', 4 * strana, 'cm')
    print('Obsah čtverce se stranou', strana, 'je', strana * strana, 'cm2')
else:
    print('Strana musí být kladná, jinak z toho nebude čtverec!')

print('Děkujeme za použití geometrické kalkulačky.')

Neboli: po if následuje podmínka (angl. condition), což je výraz, podle kterého se budeme rozhodovat. Za podmínkou je dvojtečka. Potom následují příkazy, které se provedou, pokud je podmínka pravdivá. Všechny jsou odsazeny o čtyři mezery.
Po téhle části stačí napsat neodsazené else:, zase s dvojtečkou na konci, a odsazené příkazy, které se provedou v opačném případě.
Potom můžeš psát příkazy, které se provedou vždycky – ty odsazené nebudou, podmíněná část programu už skončila.

Vzato čistě technicky, odsazení nemusí být o čtyři mezery. Může být třeba o dvě nebo o jedenáct, nebo dokonce o tabulátor. V rámci jednoho bloku musí být ale odsazení vždycky stejné, takže když pak na jednom programu spolupracuje více lidí, musí se shodnout. No a na čtyřech mezerách se shodla většina Pythonního světa.

Další podmíněné příkazy

Někdy není else vůbec potřeba. V následujícím programu se nedělá nic navíc, pokud je číslo nenulové:

cislo = int(input('Zadej číslo, přičtu k němu 3: '))
if cislo == 0:
    print('Jé, to je jednoduché!')
print(cislo, '+ 3 =', cislo + 3)

Někdy je naopak potřeba podmínek několik, k čemuž slouží příkaz elif – kombinace else a if. Dává se „mezi“ bloky if a else. Příkazů elif může být za jedním if-em několik, ale vždy se provede jen jedna „větev“: ta první, jejíž podmínka je splněna.

vek = int(input('Kolik ti je let? '))
if vek >= 150:
    print('A ze kterépak jsi planety?')
elif vek >= 18:
    # Tahle větev se např. pro "200" už neprovede.
    print('Můžeme nabídnout: víno, cider, nebo vodku.')
elif vek >= 1:
    print('Můžeme nabídnout: mléko, čaj, nebo vodu')
elif vek >= 0:
    print('Sunar už bohužel došel.')
else:
    # Nenastala ani nedna ze situací výše – muselo to být záporné
    print('Návštěvníky z budoucnosti tady nevidíme rádi.')

Zanořování

Příkazy if se dají zanořovat (angl. nest). V odsazeném (podmíněném) kousku může být další if s dalším odsazeným kódem. Třeba u tohoto programu, který rozdává nejapné rady do života:

stastna = input('Jsi šťastná?')
bohata = input('Jsi bohatá?')

if stastna == 'ano':
    # Tenhle kus kódu se provede, když je "šťastná"
    if bohata == 'ano':
        print('Gratuluji!')
    else:
        print('Zkus míň utrácet.')

else:
    # Tenhle kus kódu se provede, když není "šťastná"
    if bohata == 'ano':
        print('Zkus se víc usmívat!')
    else:
        print('To je mi líto.')
{
  "data": {
    "sessionMaterial": {
      "id": "session-material:2019/pyladies-praha-podzim-cznic:hello:3",
      "title": "Porovnávání",
      "html": "\n          \n    \n\n    <h1>Porovn&#xE1;v&#xE1;n&#xED;</h1>\n<p>Pamatuje&#x161; si je&#x161;t&#x11B;, co je to <em>oper&#xE1;tor</em>?</p>\n<p>V&#xA0;dom&#xE1;c&#xED;m projektu jsme si uk&#xE1;zali z&#xE1;kladn&#xED; aritmetick&#xE9; oper&#xE1;tory.\nP&#x159;id&#xE1;me-li jeden dal&#x161;&#xED; (<code>//</code>), jsou to tyhle:</p>\n<table class=\"table\">\n    <tbody><tr>\n        <th>Symbol</th>\n        <th>P&#x159;&#xED;klad</th>\n        <th>Popis</th>\n    </tr>\n    <tr>\n        <td><code>+</code>, <code>-</code>, <code>*</code>, <code>/</code></td>\n        <td><code>1 + 1</code></td>\n        <td>Z&#xE1;kladn&#xED; aritmetika</td>\n    </tr>\n    <tr>\n        <td><code>-</code></td>\n        <td><code>-5</code></td>\n        <td>Negace</td>\n    </tr>\n    <tr>\n        <td><code>//</code>; <code>%</code></td>\n        <td><code>7 // 2</code>; <code>7 % 2</code></td>\n        <td>D&#x11B;len&#xED; se zbytkem (<em>celo&#x10D;&#xED;seln&#xE9; d&#x11B;len&#xED;</em>); zbytek</td>\n    </tr>\n    <tr>\n        <td><code>**</code></td>\n        <td><code>3 ** 2</code></td>\n        <td>Umocn&#x11B;n&#xED; (3 na druhou)</td>\n    </tr>\n</tbody></table><p>Python ale zn&#xE1; i dal&#x161;&#xED; druhy oper&#xE1;tor&#x16F;.\nD&#x16F;le&#x17E;it&#xE9; jsou oper&#xE1;tory <em>porovn&#xE1;vac&#xED;</em>.\nZkus si co d&#x11B;laj&#xED;!\n(Bu&#x10F; z&#xA0;programu pomoc&#xED; <code>print</code>,\nnebo pus&#x165; <code>python</code> z&#xA0;p&#x159;&#xED;kazov&#xE9; &#x159;&#xE1;dky.)</p>\n<table class=\"table\">\n    <tbody><tr>\n        <th>Symbol</th>\n        <th>P&#x159;&#xED;klad</th>\n        <th>Popis</th>\n    </tr>\n    <tr>\n        <td><code>==</code>, <code>!=</code></td>\n        <td><code>1 == 1</code>, <code>1 != 1</code></td>\n        <td>Je rovno, nen&#xED; rovno</td>\n    </tr>\n    <tr>\n        <td><code>&lt;</code>, <code>&gt;</code></td>\n        <td><code>3 &lt; 5</code>, <code>3 &gt; 5</code></td>\n        <td>V&#x11B;t&#x161;&#xED; ne&#x17E;, men&#x161;&#xED; ne&#x17E;</td>\n    </tr>\n    <tr>\n        <td><code>&lt;=</code>, <code>&gt;=</code></td>\n        <td><code>3 &lt;= 5</code>, <code>3 &gt;= 5</code></td>\n        <td>V&#x11B;t&#x161;&#xED; nebo rovno, men&#x161;&#xED; nebo rovno</td>\n    </tr>\n</tbody></table><p>Hodnoty provn&#xE1;n&#xED; jsou takzvan&#xE9; <em>booleovsk&#xE9;</em> hodnoty\n(angl. <em>boolean</em>, podle <a href=\"http://en.wikipedia.org/wiki/George_Boole\">G. Boolea</a>).\nV&#xA0;Pythonu se pou&#x17E;&#xED;vaj&#xED; v&#x17E;dycky, kdy&#x17E; pot&#x159;ebujeme v&#x11B;d&#x11B;t, jestli n&#x11B;co plat&#xED;\nnebo neplat&#xED;.\nJsou jenom dv&#x11B; &#x2013; bu&#x10F; <code>True</code> (pravda), nebo <code>False</code> (nepravda).</p>\n<p>Jako v&#x161;echny hodnoty, <code>True</code> a <code>False</code> se daj&#xED; p&#x159;i&#x159;azovat do prom&#x11B;nn&#xFD;ch:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"n\">pravda</span> <span class=\"o\">=</span> <span class=\"mi\">1</span> <span class=\"o\">&lt;</span> <span class=\"mi\">3</span>\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"n\">pravda</span><span class=\"p\">)</span>\n\n<span class=\"n\">nepravda</span> <span class=\"o\">=</span> <span class=\"mi\">1</span> <span class=\"o\">==</span> <span class=\"mi\">3</span>\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"n\">nepravda</span><span class=\"p\">)</span>\n</pre></div><div class=\"admonition note\"><p>V&#x161;imni si, &#x17E;e rovnost se zji&#x161;&#x165;uje pomoc&#xED; dvou rovn&#xED;tek: <code>3 == 3</code>.\nJedno rovn&#xED;tko p&#x159;i&#x159;azuje do prom&#x11B;nn&#xE9;; dv&#x11B; rovn&#xED;tka porovn&#xE1;vaj&#xED;.</p>\n</div><p>Slova <code>True</code> a <code>False</code> jdou\nv&#xA0;programu pou&#x17E;&#xED;t i p&#x159;&#xED;mo,\njen je pot&#x159;eba d&#xE1;vat pozor na velikost p&#xED;smen:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"k\">print</span><span class=\"p\">(</span><span class=\"bp\">True</span><span class=\"p\">)</span>\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"bp\">False</span><span class=\"p\">)</span>\n</pre></div><h2>Podm&#xED;nky</h2>\n<p>Te&#x10F; opr&#xE1;&#x161;&#xED;me program na v&#xFD;po&#x10D;et obvodu a obsahu.</p>\n<p>Otev&#x159;i si v&#xA0;editoru nov&#xFD; soubor.\nJestli je&#x161;t&#x11B; v&#xA0;adres&#xE1;&#x159;i, kde m&#xE1;&#x161; soubory ke kurz&#x16F;m Pythonu,\nnem&#xE1;&#x161; adres&#xE1;&#x159; pro tuto lekci (t&#x159;eba <code>02</code>), vytvo&#x159; si ho.\nNov&#xFD; soubor ulo&#x17E; do n&#x11B;j pod jm&#xE9;nem <code>if.py</code>.</p>\n<p>Do souboru pak napi&#x161; n&#xE1;sleduj&#xED;c&#xED; program:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"n\">strana</span> <span class=\"o\">=</span> <span class=\"nb\">float</span><span class=\"p\">(</span><span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">&apos;Zadej stranu &#x10D;tverce v&#xA0;centimetrech: &apos;</span><span class=\"p\">))</span>\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Obvod &#x10D;tverce se stranou&apos;</span><span class=\"p\">,</span> <span class=\"n\">strana</span><span class=\"p\">,</span> <span class=\"s1\">&apos;je&apos;</span><span class=\"p\">,</span> <span class=\"mi\">4</span> <span class=\"o\">*</span> <span class=\"n\">strana</span><span class=\"p\">,</span> <span class=\"s1\">&apos;cm&apos;</span><span class=\"p\">)</span>\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Obsah &#x10D;tverce se stranou&apos;</span><span class=\"p\">,</span> <span class=\"n\">strana</span><span class=\"p\">,</span> <span class=\"s1\">&apos;je&apos;</span><span class=\"p\">,</span> <span class=\"n\">strana</span> <span class=\"o\">*</span> <span class=\"n\">strana</span><span class=\"p\">,</span> <span class=\"s1\">&apos;cm2&apos;</span><span class=\"p\">)</span>\n</pre></div><p>Program spus&#x165;. Funguje?</p>\n<p>Co se stane, kdy&#x17E; jako stranu zad&#xE1;&#x161; z&#xE1;porn&#xE9; &#x10D;&#xED;slo?\nD&#xE1;v&#xE1; v&#xFD;stup smysl?</p>\n<p>Tady je vid&#x11B;t, jak po&#x10D;&#xED;ta&#x10D; d&#x11B;l&#xE1; p&#x159;esn&#x11B;, co se mu &#x159;ekne. Nep&#x159;em&#xFD;&#x161;l&#xED; o v&#xFD;znamu.\nBylo by dobr&#xE9; u&#x17E;ivateli, kter&#xFD; zad&#xE1; z&#xE1;porn&#xE9; &#x10D;&#xED;slo,\np&#x159;&#xED;mo &#x159;&#xED;ct, &#x17E;e zadal blbost. Jak na to?</p>\n<p>Nejd&#x159;&#xED;v zkus nastavit prom&#x11B;nnou kter&#xE1; bude <code>True</code>,\nkdy&#x17E; u&#x17E;ivatel zadal kladn&#xE9; &#x10D;&#xED;slo.</p>\n<div class=\"solution\" id=\"solution-0\">\n    <h3>&#x158;e&#x161;en&#xED;</h3>\n    <div class=\"solution-cover\">\n        <a href=\"/2019/pyladies-praha-podzim-cznic/beginners/comparisons/index/solutions/0/\"><span class=\"link-text\">Uk&#xE1;zat &#x159;e&#x161;en&#xED;</span></a>\n    </div>\n    <div class=\"solution-body\" aria-hidden=\"true\">\n        <p>Takov&#xE1; prom&#x11B;nn&#xE1; se d&#xE1; nastavit pomoc&#xED; tohoto k&#xF3;du:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"n\">strana</span> <span class=\"o\">=</span> <span class=\"nb\">float</span><span class=\"p\">(</span><span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">&apos;Zadej stranu &#x10D;tverce v&#xA0;centimetrech: &apos;</span><span class=\"p\">))</span>\n<span class=\"n\">cislo_je_spravne</span> <span class=\"o\">=</span> <span class=\"n\">strana</span> <span class=\"o\">&gt;</span> <span class=\"mi\">0</span>\n</pre></div>\n    </div>\n</div><p>A nyn&#xED; &#x159;ekneme po&#x10D;&#xED;ta&#x10D;i, aby tuhle prom&#x11B;nnou pou&#x17E;il.\nK&#xA0;tomu se pou&#x17E;&#xED;v&#xE1; dvojice p&#x159;&#xED;kaz&#x16F; <code>if</code> (<em>pokud</em>)\na <code>else</code> (<em>jinak</em>).\nNejlep&#x161;&#xED; bude je uk&#xE1;zat na p&#x159;&#xED;kladu:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"n\">strana</span> <span class=\"o\">=</span> <span class=\"nb\">float</span><span class=\"p\">(</span><span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">&apos;Zadej stranu &#x10D;tverce v&#xA0;centimetrech: &apos;</span><span class=\"p\">))</span>\n<span class=\"n\">cislo_je_spravne</span> <span class=\"o\">=</span> <span class=\"n\">strana</span> <span class=\"o\">&gt;</span> <span class=\"mi\">0</span>\n\n<span class=\"k\">if</span> <span class=\"n\">cislo_je_spravne</span><span class=\"p\">:</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Obvod &#x10D;tverce se stranou&apos;</span><span class=\"p\">,</span> <span class=\"n\">strana</span><span class=\"p\">,</span> <span class=\"s1\">&apos;je&apos;</span><span class=\"p\">,</span> <span class=\"mi\">4</span> <span class=\"o\">*</span> <span class=\"n\">strana</span><span class=\"p\">,</span> <span class=\"s1\">&apos;cm&apos;</span><span class=\"p\">)</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Obsah &#x10D;tverce se stranou&apos;</span><span class=\"p\">,</span> <span class=\"n\">strana</span><span class=\"p\">,</span> <span class=\"s1\">&apos;je&apos;</span><span class=\"p\">,</span> <span class=\"n\">strana</span> <span class=\"o\">*</span> <span class=\"n\">strana</span><span class=\"p\">,</span> <span class=\"s1\">&apos;cm2&apos;</span><span class=\"p\">)</span>\n<span class=\"k\">else</span><span class=\"p\">:</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Strana mus&#xED; b&#xFD;t kladn&#xE1;, jinak z toho nebude &#x10D;tverec!&apos;</span><span class=\"p\">)</span>\n\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;D&#x11B;kujeme za pou&#x17E;it&#xED; geometrick&#xE9; kalkula&#x10D;ky.&apos;</span><span class=\"p\">)</span>\n</pre></div><p>Neboli: po <code>if</code> n&#xE1;sleduje <em>podm&#xED;nka</em> (angl. <em>condition</em>),\nco&#x17E; je v&#xFD;raz, podle kter&#xE9;ho se budeme rozhodovat.\nZa podm&#xED;nkou je dvojte&#x10D;ka.\nPotom n&#xE1;sleduj&#xED; p&#x159;&#xED;kazy, kter&#xE9; se provedou, pokud je podm&#xED;nka pravdiv&#xE1;.\nV&#x161;echny jsou odsazeny o &#x10D;ty&#x159;i mezery.<br>\nPo t&#xE9;hle &#x10D;&#xE1;sti sta&#x10D;&#xED; napsat neodsazen&#xE9; <code>else:</code>, zase s&#xA0;dvojte&#x10D;kou na konci,\na odsazen&#xE9; p&#x159;&#xED;kazy, kter&#xE9; se provedou v&#xA0;opa&#x10D;n&#xE9;m p&#x159;&#xED;pad&#x11B;.<br>\nPotom m&#x16F;&#x17E;e&#x161; ps&#xE1;t p&#x159;&#xED;kazy, kter&#xE9; se provedou v&#x17E;dycky &#x2013; ty odsazen&#xE9; nebudou,\npodm&#xED;n&#x11B;n&#xE1; &#x10D;&#xE1;st programu u&#x17E; skon&#x10D;ila.</p>\n<div class=\"admonition style-note\"><p>Vzato &#x10D;ist&#x11B; technicky, odsazen&#xED; nemus&#xED; b&#xFD;t o &#x10D;ty&#x159;i mezery.\nM&#x16F;&#x17E;e b&#xFD;t t&#x159;eba o dv&#x11B; nebo o jeden&#xE1;ct, nebo dokonce o tabul&#xE1;tor.\nV&#xA0;r&#xE1;mci jednoho bloku mus&#xED; b&#xFD;t ale odsazen&#xED; v&#x17E;dycky stejn&#xE9;,\ntak&#x17E;e kdy&#x17E; pak na jednom programu spolupracuje v&#xED;ce lid&#xED;, mus&#xED; se shodnout.\nNo a na &#x10D;ty&#x159;ech mezer&#xE1;ch se shodla v&#x11B;t&#x161;ina Pythonn&#xED;ho sv&#x11B;ta.</p>\n</div><h2>Dal&#x161;&#xED; podm&#xED;n&#x11B;n&#xE9; p&#x159;&#xED;kazy</h2>\n<p>N&#x11B;kdy nen&#xED; <code>else</code> v&#x16F;bec pot&#x159;eba.\nV&#xA0;n&#xE1;sleduj&#xED;c&#xED;m programu se ned&#x11B;l&#xE1; nic nav&#xED;c, pokud je &#x10D;&#xED;slo nenulov&#xE9;:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"n\">cislo</span> <span class=\"o\">=</span> <span class=\"nb\">int</span><span class=\"p\">(</span><span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">&apos;Zadej &#x10D;&#xED;slo, p&#x159;i&#x10D;tu k&#xA0;n&#x11B;mu 3: &apos;</span><span class=\"p\">))</span>\n<span class=\"k\">if</span> <span class=\"n\">cislo</span> <span class=\"o\">==</span> <span class=\"mi\">0</span><span class=\"p\">:</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;J&#xE9;, to je jednoduch&#xE9;!&apos;</span><span class=\"p\">)</span>\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"n\">cislo</span><span class=\"p\">,</span> <span class=\"s1\">&apos;+ 3 =&apos;</span><span class=\"p\">,</span> <span class=\"n\">cislo</span> <span class=\"o\">+</span> <span class=\"mi\">3</span><span class=\"p\">)</span>\n</pre></div><p>N&#x11B;kdy je naopak pot&#x159;eba podm&#xED;nek n&#x11B;kolik,\nk&#xA0;&#x10D;emu&#x17E; slou&#x17E;&#xED; p&#x159;&#xED;kaz <code>elif</code> &#x2013; kombinace <code>else</code> a <code>if</code>.\nD&#xE1;v&#xE1; se &#x201E;mezi&#x201C; bloky <code>if</code> a <code>else</code>.\nP&#x159;&#xED;kaz&#x16F; <code>elif</code> m&#x16F;&#x17E;e b&#xFD;t za jedn&#xED;m <code>if</code>-em n&#x11B;kolik,\nale v&#x17E;dy se provede jen jedna &#x201E;v&#x11B;tev&#x201C;:\nta prvn&#xED;, jej&#xED;&#x17E; podm&#xED;nka je spln&#x11B;na.</p>\n<div class=\"highlight\"><pre><span></span><span class=\"n\">vek</span> <span class=\"o\">=</span> <span class=\"nb\">int</span><span class=\"p\">(</span><span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">&apos;Kolik ti je let? &apos;</span><span class=\"p\">))</span>\n<span class=\"k\">if</span> <span class=\"n\">vek</span> <span class=\"o\">&gt;=</span> <span class=\"mi\">150</span><span class=\"p\">:</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;A ze kter&#xE9;pak jsi planety?&apos;</span><span class=\"p\">)</span>\n<span class=\"k\">elif</span> <span class=\"n\">vek</span> <span class=\"o\">&gt;=</span> <span class=\"mi\">18</span><span class=\"p\">:</span>\n    <span class=\"c1\"># Tahle v&#x11B;tev se nap&#x159;. pro &quot;200&quot; u&#x17E; neprovede.</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;M&#x16F;&#x17E;eme nab&#xED;dnout: v&#xED;no, cider, nebo vodku.&apos;</span><span class=\"p\">)</span>\n<span class=\"k\">elif</span> <span class=\"n\">vek</span> <span class=\"o\">&gt;=</span> <span class=\"mi\">1</span><span class=\"p\">:</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;M&#x16F;&#x17E;eme nab&#xED;dnout: ml&#xE9;ko, &#x10D;aj, nebo vodu&apos;</span><span class=\"p\">)</span>\n<span class=\"k\">elif</span> <span class=\"n\">vek</span> <span class=\"o\">&gt;=</span> <span class=\"mi\">0</span><span class=\"p\">:</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Sunar u&#x17E; bohu&#x17E;el do&#x161;el.&apos;</span><span class=\"p\">)</span>\n<span class=\"k\">else</span><span class=\"p\">:</span>\n    <span class=\"c1\"># Nenastala ani nedna ze situac&#xED; v&#xFD;&#x161;e &#x2013; muselo to b&#xFD;t z&#xE1;porn&#xE9;</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;N&#xE1;v&#x161;t&#x11B;vn&#xED;ky z&#xA0;budoucnosti tady nevid&#xED;me r&#xE1;di.&apos;</span><span class=\"p\">)</span>\n</pre></div><h2>Zano&#x159;ov&#xE1;n&#xED;</h2>\n<p>P&#x159;&#xED;kazy <code>if</code> se daj&#xED; <em>zano&#x159;ovat</em> (angl. <em>nest</em>).\nV&#xA0;odsazen&#xE9;m (podm&#xED;n&#x11B;n&#xE9;m) kousku m&#x16F;&#x17E;e b&#xFD;t dal&#x161;&#xED; <code>if</code> s dal&#x161;&#xED;m odsazen&#xFD;m\nk&#xF3;dem.\nT&#x159;eba u&#xA0;tohoto programu, kter&#xFD; rozd&#xE1;v&#xE1; nejapn&#xE9; rady do &#x17E;ivota:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"n\">stastna</span> <span class=\"o\">=</span> <span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">&apos;Jsi &#x161;&#x165;astn&#xE1;?&apos;</span><span class=\"p\">)</span>\n<span class=\"n\">bohata</span> <span class=\"o\">=</span> <span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">&apos;Jsi bohat&#xE1;?&apos;</span><span class=\"p\">)</span>\n\n<span class=\"k\">if</span> <span class=\"n\">stastna</span> <span class=\"o\">==</span> <span class=\"s1\">&apos;ano&apos;</span><span class=\"p\">:</span>\n    <span class=\"c1\"># Tenhle kus k&#xF3;du se provede, kdy&#x17E; je &quot;&#x161;&#x165;astn&#xE1;&quot;</span>\n    <span class=\"k\">if</span> <span class=\"n\">bohata</span> <span class=\"o\">==</span> <span class=\"s1\">&apos;ano&apos;</span><span class=\"p\">:</span>\n        <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Gratuluji!&apos;</span><span class=\"p\">)</span>\n    <span class=\"k\">else</span><span class=\"p\">:</span>\n        <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Zkus m&#xED;&#x148; utr&#xE1;cet.&apos;</span><span class=\"p\">)</span>\n\n<span class=\"k\">else</span><span class=\"p\">:</span>\n    <span class=\"c1\"># Tenhle kus k&#xF3;du se provede, kdy&#x17E; nen&#xED; &quot;&#x161;&#x165;astn&#xE1;&quot;</span>\n    <span class=\"k\">if</span> <span class=\"n\">bohata</span> <span class=\"o\">==</span> <span class=\"s1\">&apos;ano&apos;</span><span class=\"p\">:</span>\n        <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Zkus se v&#xED;c usm&#xED;vat!&apos;</span><span class=\"p\">)</span>\n    <span class=\"k\">else</span><span class=\"p\">:</span>\n        <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;To je mi l&#xED;to.&apos;</span><span class=\"p\">)</span>\n</pre></div>\n\n\n        "
    }
  }
}