Podmínky
Pomocí podmínek se může program rozhodovat podle dat, které má k dispozici. K napsání podmínky používáme klíčkové slovo if. Za if napíšeme nějakou podmínku, kterou si program zkontroluje. Pokud je pravdivá, vykoná blok kódu uvnitř. Pokud ne, přeskočí jej.
cislo = 20
if cislo == 20:
print("Číslo se rovná dvaceti!")
Podobně jako u funkce, vnitřek podmínkového bloku píšeme odsazeně a s dvojtečkou za podmínkou. U porovnávání čísel používáme dvojité rovná se (==), protože jednoduché rovná se používáme k přiřazování hodnot do proměnných.
Pokud máme blok if, můžeme ho doplnit blokem else.
cislo = 20
if cislo == 20:
print("Číslo se rovná dvaceti!")
else:
print("Číslo se nerovná dvaceti :(")
Blok else se spustí, pokud je podmínka v if nesplněná (jinými slovy v tomto případě, pokud cislo není dvacet).
Pro porovnávání čísel máme tyto operátory:
==- rovná se!=- nerovná se<- menší než>- větší než<=- menší rovno>=- větší rovno
Můžeme porovnávat i text:
heslo = input("Zadej heslo")
if heslo == "Sezame otevři se":
print("Heslo je správně!")
else:
print("Heslo je špatně, padej!")
U textu však smíme používat pouze operátory == a !=. U ostatních by to nedávalo moc smysl. Pokud chceme porovnávat délku textu, můžeme použít funkci len()
vstup = input("Zadej tak akorát dlouhý text:")
delka = len(vstup)
if delka > 7 and delka < 10:
print("Správná délka")
else:
print("To není dobře :(")
Všimneme si nového slovíčka and. Můžeme pomocí něj spojovat podmínky tak, že se blok if spustí jen v tom případě, kdy jsou obě podmínky pravdivé (tudíž že je délka vstupu větší než 7 a zároveň menší než 10).
Máme i logický operátor or. Pokud jím spojíme dvě podmínky, spustil by se blok if v tom případě, že je alespoň jedna z podmínek pravdivá (respektive by stačilo, že je vstup větší než 7, nebo menší než deset, což když se nad tím zamyslíme, jsou všechna čísla).
Bloky if a else můžeme skládat do sebe, musíme si však dávat pozor na správné odsazení.
cislo = 20
text = "ahoj"
if cislo == 20:
if text == "čauky":
print("Číslo je 20 a text je čauky")
else:
print("Číslo je 20, ale text není čauky")
else:
print("Číslo není 20 a text může být cokoliv")
V tomto případě by program vypsal “Číslo je 20, ale text není čauky”.