Spoustu věcí v kódu chceme provádět, jen pokud jsou splněny určité podmínky. Proto má Python podmíněné příkazy.
Zkusíme napsat program, který ověřuje tajné heslo.
Tenhle program napíše True
, když zadáš slovo čokoláda
:
heslo = input('Zadej heslo: ')
print(heslo == 'čokoláda')
Vypsání True
ale není moc zajímavé.
Lepší program by dělal tohle:
Anglicky se „když“ řekne if. A to je i jméno Pythonního příkazu. Používá se takhle:
heslo = input('Zadej heslo: ')
if heslo == 'čokoláda':
print('Správně! Račte vstoupit.')
Podmíněný příkaz začíná if
, pokračuje podmínkou (třeba porovnáním)
a končí dvojtečkou.
Po řádkem s if
je příkaz odsazený – na začátku řádku jsou 4 mezery.
Podle toho Python pozná, že tuhle část programu má provést, jen když je podmínka pravdivá.
Ulož a spusť:
(venv) $ python python_intro.py
Zadej heslo: čokoláda
Správně! Můžeš vstoupit.
(venv) $ python python_intro.py
Zadej heslo: sezam
V předchozím příkladu byl kód proveden pouze v případě, že podmínka byla splněna. Ještě lepší program by ale byl tenhle:
K tomu má Python příkaz else
– „jinak“:
heslo = input('Zadej heslo: ')
if heslo == 'čokoláda':
print('Správně! Račte vstoupit.')
else:
print('POZOR! POZOR!')
print('NEOPRÁVNĚNÝ VSTUP!')
Funuje to?
Občas se stane, že se program musí rozhodnout mezi více možnostmi.
K tomu slouží příkaz elif
, zkratka znglického else if – „jinak, pokud“.
Napišme program, který okomentuje hlasitost hudby:
V Pythonu:
hlasitost = int(input('Jaká je nastavená hlasitost rádia? '))
if hlasitost < 20:
print("Je to dost potichu.")
elif hlasitost < 40:
print("Jako hudba na pozadí dobré.")
elif hlasitost < 60:
print("Skvělé, slyším všechny detaily.")
elif hlasitost < 80:
print("Dobré na party.")
elif hlasitost < 100:
print("Trochu moc nahlas!")
else:
print("Krvácí mi uši!")
(venv) $ python python_intro.py
Jaká je nastavená hlasitost rádia? 28
Jako hudba v pozadí dobré.
Všimni si, že se vybere vždycky jedna alternativa.
Když zadáš 28
, Python se dostane k hlasitost < 40
, vypíše
příslušnou hlášku a další možnosti přeskočí.
Co jsi viděla v této lekci?
if
apod..{ "data": { "sessionMaterial": { "id": "session-material:2019/brno-podzim-snake:intro:10", "title": "PodmĂnky", "html": "\n \n \n\n <h1>Podmínky</h1>\n<p>Spoustu věcí v kódu chceme provádět, jen pokud jsou splněny určité podmínky.\nProto má Python <em>podmíněné příkazy</em>.</p>\n<p>Zkusíme napsat program, který ověřuje tajné heslo.\nTenhle program napíše <code>True</code>, když zadáš slovo <code>čokoláda</code>:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"n\">heslo</span> <span class=\"o\">=</span> <span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">'Zadej heslo: '</span><span class=\"p\">)</span>\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"n\">heslo</span> <span class=\"o\">==</span> <span class=\"s1\">'čokoláda'</span><span class=\"p\">)</span>\n</pre></div><h2>Když – tak</h2>\n<p>Vypsání <code>True</code> ale není moc zajímavé.\nLepší program by dělal tohle:</p>\n<ul>\n<li>Zeptá se na tajné heslo</li>\n<li>Když je heslo správné:<ul>\n<li>Pustí uživatele dovnitř</li>\n</ul>\n</li>\n</ul>\n<p>Anglicky se „když“ řekne <em>if</em>. A to je i jméno Pythonního příkazu.\nPoužívá se takhle:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"n\">heslo</span> <span class=\"o\">=</span> <span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">'Zadej heslo: '</span><span class=\"p\">)</span>\n<span class=\"k\">if</span> <span class=\"n\">heslo</span> <span class=\"o\">==</span> <span class=\"s1\">'čokoláda'</span><span class=\"p\">:</span>\n <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">'Správně! Račte vstoupit.'</span><span class=\"p\">)</span>\n</pre></div><p>Podmíněný příkaz začíná <code>if</code>, pokračuje podmínkou (třeba porovnáním)\na končí dvojtečkou.</p>\n<p>Po řádkem s <code>if</code> je příkaz <em>odsazený</em> – na začátku řádku jsou 4 mezery.</p>\n<p>Podle toho Python pozná, že tuhle část programu má provést,\njen když je podmínka pravdivá.</p>\n<p>Ulož a spusť:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">(venv) $ </span>python python_intro.py\n<span class=\"go\">Zadej heslo: čokoláda</span>\n<span class=\"go\">Správně! Můžeš vstoupit.</span>\n</pre></div><div class=\"highlight\"><pre><span></span><span class=\"gp\">(venv) $ </span>python python_intro.py\n<span class=\"go\">Zadej heslo: sezam</span>\n</pre></div><h2>Jinak</h2>\n<p>V předchozím příkladu byl kód proveden pouze v případě, že podmínka byla splněna.\nJeště lepší program by ale byl tenhle:</p>\n<ul>\n<li>Zeptá se na tajné heslo</li>\n<li>Když je heslo správné:<ul>\n<li>Pustí uživatele dovnitř</li>\n</ul>\n</li>\n<li>Jinak <small>(tedy pokud heslo nebylo správné)</small>:<ul>\n<li>Spustí alarm</li>\n</ul>\n</li>\n</ul>\n<p>K tomu má Python příkaz <code>else</code> – „jinak“:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"n\">heslo</span> <span class=\"o\">=</span> <span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">'Zadej heslo: '</span><span class=\"p\">)</span>\n<span class=\"k\">if</span> <span class=\"n\">heslo</span> <span class=\"o\">==</span> <span class=\"s1\">'čokoláda'</span><span class=\"p\">:</span>\n <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">'Správně! Račte vstoupit.'</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\">'POZOR! POZOR!'</span><span class=\"p\">)</span>\n <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">'NEOPRÁVNĚNÝ VSTUP!'</span><span class=\"p\">)</span>\n</pre></div><p>Funuje to?</p>\n<h2>Více možností</h2>\n<p>Občas se stane, že se program musí rozhodnout mezi více možnostmi.\nK tomu slouží příkaz <code>elif</code>, zkratka znglického <em>else if</em> – „jinak, pokud“.</p>\n<p>Napišme program, který okomentuje hlasitost hudby:</p>\n<ul>\n<li>Zeptá se na hlasitost, a odpověď uloží jako číslo.</li>\n<li>Když je hlasitost do 20:<ul>\n<li>vypíše „Je to dost potichu.“</li>\n</ul>\n</li>\n<li>Jinak, když je hlasitost do 40:<ul>\n<li>vypíše „Jako hudba na pozadí dobré.“</li>\n</ul>\n</li>\n<li>Jinak, když je hlasitost do 60:<ul>\n<li>vypíše „Skvělé, slyším všechny detaily.“</li>\n</ul>\n</li>\n<li>Jinak, když je hlasitost do 80:<ul>\n<li>vypíše „Dobré na párty.“</li>\n</ul>\n</li>\n<li>Jinak, když je hlasitost do 100:<ul>\n<li>vypíše „Trochu moc nahlas!“</li>\n</ul>\n</li>\n<li>Jinak:<ul>\n<li>vypíše „Krvácí mi uši!“</li>\n</ul>\n</li>\n</ul>\n<p>V Pythonu:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"n\">hlasitost</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\">'Jaká je nastavená hlasitost rádia? '</span><span class=\"p\">))</span>\n<span class=\"k\">if</span> <span class=\"n\">hlasitost</span> <span class=\"o\"><</span> <span class=\"mi\">20</span><span class=\"p\">:</span>\n <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s2\">"Je to dost potichu."</span><span class=\"p\">)</span>\n<span class=\"k\">elif</span> <span class=\"n\">hlasitost</span> <span class=\"o\"><</span> <span class=\"mi\">40</span><span class=\"p\">:</span>\n <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s2\">"Jako hudba na pozadí dobré."</span><span class=\"p\">)</span>\n<span class=\"k\">elif</span> <span class=\"n\">hlasitost</span> <span class=\"o\"><</span> <span class=\"mi\">60</span><span class=\"p\">:</span>\n <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s2\">"Skvělé, slyším všechny detaily."</span><span class=\"p\">)</span>\n<span class=\"k\">elif</span> <span class=\"n\">hlasitost</span> <span class=\"o\"><</span> <span class=\"mi\">80</span><span class=\"p\">:</span>\n <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s2\">"Dobré na party."</span><span class=\"p\">)</span>\n<span class=\"k\">elif</span> <span class=\"n\">hlasitost</span> <span class=\"o\"><</span> <span class=\"mi\">100</span><span class=\"p\">:</span>\n <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s2\">"Trochu moc nahlas!"</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=\"s2\">"Krvácí mi uši!"</span><span class=\"p\">)</span>\n</pre></div><div class=\"highlight\"><pre><span></span><span class=\"gp\">(venv) $ </span>python python_intro.py\n<span class=\"go\">Jaká je nastavená hlasitost rádia? 28</span>\n<span class=\"go\">Jako hudba v pozadí dobré.</span>\n</pre></div><p>Všimni si, že se vybere vždycky jedna alternativa.\nKdyž zadáš <code>28</code>, Python se dostane k <code>hlasitost < 40</code>, vypíše\npříslušnou hlášku a další možnosti přeskočí.</p>\n<h2>Shrnutí</h2>\n<p>Co jsi viděla v této lekci?</p>\n<ul>\n<li>Příkazy <strong>if</strong> (pokud), <strong>elif</strong> (jinak, pokud) a <strong>else</strong> (jinak)\npodmiňují jiné příkazy.</li>\n<li><strong>Odsazení</strong> se používá pro podmíněné příkazy, které následují po\n<code>if</code> apod..</li>\n</ul>\n\n\n " } } }