Vzpomínáš na tabulku operátorů z lekce o Porovnávání? Nyní si ji doplníme o další tři operátory, které se hodí do podmínek:
Symbol | Příklad | Popis |
---|---|---|
and |
True and False |
„a zároveň“ |
or |
True or False |
„a nebo“ |
not |
not False |
„ne“ |
Pro příklad použijeme and
v tomto programu.
Zkus si ho projít a okomentovat části, které nejsou na první pohled jasné.
# Tento program rozdává naivní rady do života.
print('Odpovídej "ano" nebo "ne".')
stastna_retezec = input('Jsi šťastná? ')
if stastna_retezec == 'ano':
stastna = True
elif stastna_retezec == 'ne':
stastna = False
else:
print('Nerozumím!')
bohata_retezec = input('Jsi bohatá? ')
if bohata_retezec == 'ano':
bohata = True
elif bohata_retezec == 'ne':
bohata = False
else:
print('Nerozumím!')
if bohata and stastna:
# Je bohatá a zároveň štǎstná, ta se má.
print('Gratuluji!')
elif bohata:
# Je bohatá, ale není „bohatá a zároveň šťastná“,
# takže musí být jen bohatá.
print('Zkus se víc usmívat.')
elif stastna:
# Tady musí být jen šťastná.
print('Zkus míň utrácet.')
else:
# A tady víme, že není ani šťastná, ani bohatá.
print('To je mi líto.')
Všimni si co se stane, když zadáš něco jiného než „ano“ nebo „ne“.
Proměnná stastna
nebo bohata
se nenastaví, a když je ji potom
potřeba použít, program skončí s chybou.
O tom, jak se vypořádat s chybami, si povíme později.
{ "data": { "sessionMaterial": { "id": "session-material:2019/brno-jaro-2019-ut:hello:7", "title": "Nebo anebo a", "html": "\n \n \n\n <h1><em>Nebo</em> anebo <em>a</em></h1>\n<p>Vzpomínáš na tabulku operátorů\nz <a href=\"/2019/brno-jaro-2019-ut/beginners/comparisons/\">lekce o Porovnávání</a>?\nNyní si ji doplníme o další tři operátory,\nkteré se hodí do podmínek:</p>\n<table class=\"table\">\n <tbody><tr>\n <th>Symbol</th>\n <th>Příklad</th>\n <th>Popis</th>\n </tr>\n <tr>\n <td><code>and</code></td>\n <td><code>True and False</code></td>\n <td>„a zároveň“</td>\n </tr>\n <tr>\n <td><code>or</code></td>\n <td><code>True or False</code></td>\n <td>„a nebo“</td>\n </tr>\n <tr>\n <td><code>not</code></td>\n <td><code>not False</code></td>\n <td>„ne“</td>\n </tr>\n</tbody></table><p>Pro příklad použijeme <code>and</code> v tomto programu.\nZkus si ho projít a okomentovat části, které nejsou na první pohled jasné.</p>\n<div class=\"highlight\"><pre><span></span><span class=\"c1\"># Tento program rozdává naivní rady do života.</span>\n\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">'Odpovídej "ano" nebo "ne".'</span><span class=\"p\">)</span>\n<span class=\"n\">stastna_retezec</span> <span class=\"o\">=</span> <span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">'Jsi šťastná? '</span><span class=\"p\">)</span>\n<span class=\"k\">if</span> <span class=\"n\">stastna_retezec</span> <span class=\"o\">==</span> <span class=\"s1\">'ano'</span><span class=\"p\">:</span>\n <span class=\"n\">stastna</span> <span class=\"o\">=</span> <span class=\"bp\">True</span>\n<span class=\"k\">elif</span> <span class=\"n\">stastna_retezec</span> <span class=\"o\">==</span> <span class=\"s1\">'ne'</span><span class=\"p\">:</span>\n <span class=\"n\">stastna</span> <span class=\"o\">=</span> <span class=\"bp\">False</span>\n<span class=\"k\">else</span><span class=\"p\">:</span>\n <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">'Nerozumím!'</span><span class=\"p\">)</span>\n\n<span class=\"n\">bohata_retezec</span> <span class=\"o\">=</span> <span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">'Jsi bohatá? '</span><span class=\"p\">)</span>\n<span class=\"k\">if</span> <span class=\"n\">bohata_retezec</span> <span class=\"o\">==</span> <span class=\"s1\">'ano'</span><span class=\"p\">:</span>\n <span class=\"n\">bohata</span> <span class=\"o\">=</span> <span class=\"bp\">True</span>\n<span class=\"k\">elif</span> <span class=\"n\">bohata_retezec</span> <span class=\"o\">==</span> <span class=\"s1\">'ne'</span><span class=\"p\">:</span>\n <span class=\"n\">bohata</span> <span class=\"o\">=</span> <span class=\"bp\">False</span>\n<span class=\"k\">else</span><span class=\"p\">:</span>\n <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">'Nerozumím!'</span><span class=\"p\">)</span>\n\n<span class=\"k\">if</span> <span class=\"n\">bohata</span> <span class=\"ow\">and</span> <span class=\"n\">stastna</span><span class=\"p\">:</span>\n <span class=\"c1\"># Je bohatá a zároveň štǎstná, ta se má.</span>\n <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">'Gratuluji!'</span><span class=\"p\">)</span>\n<span class=\"k\">elif</span> <span class=\"n\">bohata</span><span class=\"p\">:</span>\n <span class=\"c1\"># Je bohatá, ale není „bohatá a zároveň šťastná“,</span>\n <span class=\"c1\"># takže musí být jen bohatá.</span>\n <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">'Zkus se víc usmívat.'</span><span class=\"p\">)</span>\n<span class=\"k\">elif</span> <span class=\"n\">stastna</span><span class=\"p\">:</span>\n <span class=\"c1\"># Tady musí být jen šťastná.</span>\n <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">'Zkus míň utrácet.'</span><span class=\"p\">)</span>\n<span class=\"k\">else</span><span class=\"p\">:</span>\n <span class=\"c1\"># A tady víme, že není ani šťastná, ani bohatá.</span>\n <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">'To je mi líto.'</span><span class=\"p\">)</span>\n</pre></div><div class=\"admonition note\"><p>Všimni si co se stane, když zadáš něco jiného než „ano“ nebo „ne“.</p>\n<p>Proměnná <code>stastna</code> nebo <code>bohata</code> se nenastaví, a když je ji potom\npotřeba použít, program skončí s chybou.</p>\n<p>O tom, jak se vypořádat s chybami, si povíme <a href=\"/2019/brno-jaro-2019-ut/beginners/exceptions/\">později</a>.</p>\n</div>\n\n\n " } } }