Spoustu věcí v kódu budeš chtít provádět, jen pokud jsou splněny určité podmínky. Na to má Python podmíněné příkazy.
Zkusíme teď postupně napsat program, který ověřuje tajné heslo.
Pro začátek napiš program, který vypíše True
, když zadáš slovo čokoláda
.
Když bude zadané heslo jiné, napíše False
:
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
To, že jsou na začátku řádku potřeba čtyři mezery, neznamená že musíš
4× zmáčknout mezerník.
Některé editory odsazují automaticky (pokud napíšeš řádek s if
správně).
Ve všech správně nastavených editorech ale lze odsadit pomocí klávesy
↹ Tab a kombinace ⇧ Shift+↹ Tab vrátí řádek o jednu úroveň odsazení zpátky.
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?
(venv) $ python python_intro.py
Zadej heslo: čokoláda
Správně! Můžeš vstoupit.
(venv) $ python python_intro.py
Zadej heslo: sezam
POZOR! POZOR!
NEOPRÁVNĚNÝ VSTUP!
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“).
Třeba takovýmhle postupem se dá okomentovat hlasitost hudby:
V Pythonu by se to zapsalo takto:
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 všechny další možnosti přeskočí.
Co jsi viděla v této lekci?
if
apod..