Podmínky 4: else a elif
V této části se zaměříme na vylepšení naší schopnosti větvit tok kódu pomocí příkazů else
a elif
. Tyto příkazy rozšiřují základní podmíněné struktury a umožňují efektivnější a přehlednější kontrolu nad tím, které části kódu se vykonají.
Příkaz Else
Příkaz else
se používá jako doplněk k příkazu if
a provede se pouze tehdy, když podmínka v if
není splněna. Jednoduše řečeno, else
je kód, který se spustí, pokud žádná z předchozích podmínek if
nebyla pravdivá.
# podmínky - else
heslo = input("Zadej heslo: ")
if heslo == "tajne":
print("Správné heslo.")
else:
print("Nesprávné heslo.")
V tomto případě, pokud je hodnota proměnné heslo
rovna "tajne"
, vytiskne se zpráva "Správné heslo."
. Pokud není, spustí se blok kódu pod else
a vytiskne se "Nesprávné heslo."
.
Příkaz else
je nepovinný a patří mezi příkazy, které vylepšují čitelnost kódu. Bez else
bychom museli použít další if
.
Podívejme se na stejný příklad napsaný pomocí dvou příkazů if
místo jednoho if
a else
:
heslo = input("Zadej heslo: ")
if heslo == "tajne":
print("Správné heslo.")
if heslo != "tajne":
print("Nesprávné heslo.")
Tento kód dělá to samé, ale je hůře interpretovatelný a méně efektivní, protože vyhodnocuje dvě podmínky místo jedné. Použití else
dělá kód čitelnějším a rychlejším, což je důležité zejména u složitějších programů.
Dokonce i na diagramu to může vypadat složitěji, pokud použijeme dva příkazy if
:
Příkaz else | Dva příkazy if |
---|---|
Příkaz Elif
Klíčové slovo elif
je zkratkou pro “else if”. Umožňuje přidat do podmíněného bloku další úroveň podmínek bez nutnosti vnořování nebo použití dalších příkazů if
s, někdy hůře pochopitelným, and
, or
, apod.. Díky elif
můžeme snadno vytvořit více větví pro různé podmínky.
# podmínky - elif
pocet_bodu = 100
if pocet_bodu < 10:
print("Nedostatečný počet bodů.")
elif pocet_bodu < 20:
print("Postačující počet bodů")
elif pocet_bodu < 30:
print("Dobrý počet bodů")
else:
print("Výborný počet bodů")
Tento kód kontroluje různé rozsahy hodnot pro proměnnou pocet_bodu
. Jakmile je jedna z podmínek splněna, další elif
ani else
se už netestují, což opět zlepšuje efektivitu a čitelnost.
Bez elif
bychom museli použít další if
, tak jsme to udělali v minulé části o podmínkách. Opět pro srovnání:
pocet_bodu = 100
if pocet_bodu < 10:
print("Nedostatečný počet bodů.")
if pocet_bodu >= 10 and pocet_bodu < 20:
print("Postačující počet bodů")
if pocet_bodu >= 20 and pocet_bodu < 30:
print("Dobrý počet bodů")
if pocet_bodu >= 30:
print("Výborný počet bodů")
S příkazem elif a else | Více příkazů if |
---|---|
Shrnutí
Kód s použitím elif
a else
je kratší, pro čtenáře kódu je jasné, že všechny podmínky patří k sobě. Kód se větví skutečně v jednom body a začíná to podmínkou if. Použítí operátoru and
jsme se vyhli, protože pokud je podmínka splněna, tak další elif
se již netestují a kód pokračuje za kódem s podmínkami.
Souhrnně řečeno, elif
nám umožňuje řetězit více podmínek dohromady, zatímco else
poskytuje výchozí akci, když všechny podmínky if
a elif
selžou. Společně poskytují if
, elif
a else
účinný způsob, jak řídit tok programu.
Kontrolní Otázky
Pokud to dokážeš vysvětlit někomu jinému vlastními slovy, jsi na dobré cestě tomu rozumět. Dokážeš odpovědět na tyto otázky?
- Vysvětlelte rozdíl mezi příkazy
if
,elif
aelse
v jazyce Python. - Co znamená klíčové slovo
elif
a kdy by se mělo použít? - Jak Python pracuje s více příkazy
elif
za sebou? - Co se stane, když v bloku kódu není splněna žádná z podmínek
if
neboelif
? - Popište úlohu odsazení v podmíněných souborech jazyka Python.
- Lze použít příkaz
else
bez předchozího příkazuif
? Jak je to s příkazemelif
? - Uveďte příklad úryvku kódu, ve kterém byste použili příkaz
else
. - Proč je efektivnější použít příkaz
elif
místo více příkazůif
?
Kvízy
Jaký je výstup následujícího kódu v jazyce Python?
x = 50
if x < 10:
print("Méně než 10.")
elif x < 30:
print("Mezi 10 a 30.")
elif x < 50:
print("Mezi 30 a 50.")
else:
print("50 nebo více.")
- Méně než 10.
- Mezi 10 a 30.
- Mezi 30 a 50.
- 50 nebo více.
Která z následujících možností je pravdivá o příkazu else v jazyce Python?
- Příkaz else může existovat i bez příkazu if.
- Příkaz else se provede pouze tehdy, je-li podmínka příkazu if pravdivá.
- Příkaz else se provede pouze tehdy, je-li podmínka příkazu if nepravdivá.
- Příkaz else se provede bez ohledu na to, zda je podmínka příkazu if pravdivá nebo nepravdivá.
Kolik příkazů elif
může být za příkazem if
?
- Žádný
- Pouze jeden
- Pouze dva
- Kolik chceme
Co v jazyce Python znamená klíčové slovo elif
?
- else if
- else in
- else odsazení
- else increment
Cvičení
Cvičení 1: Základní podmínka if-else
Napište program v jazyce Python, který požádá uživatele o zadání čísla. Pokud je číslo menší než 10, vypište "Toto číslo je menší než 10."
. Pokud je číslo větší než 10, vypište "Toto číslo je větší než 10."
.
Cvičení 2: Podmínka if-elif-else
Napište program v jazyce Python, který požádá uživatele o zadání jeho věku. Pokud je věk menší než 13 let, vypište "Jste dítě."
. Pokud je věk 13 až 19 let, vypište "Jsi teenager."
. Pokud je věk vyšší než 19 let, vypište "Jste dospělý"
.
Cvičení 3: Vnořené podmínky if
Napište program v jazyce Python, který požádá uživatele o zadání čísla. Pokud je číslo kladné, zkontrolujte, zda je sudé nebo liché, a vypište příslušnou zprávu. Pokud je číslo záporné, vypište "Číslo je záporné."
, apod.
Cvičení 4: Logické operátory
Napište program v jazyce Python, který požádá uživatele o zadání čísla. Pokud je číslo menší než 0 nebo větší než 100, vypište "Číslo je mimo rozsah."
. Pokud je číslo v rozmezí 0 až 100 včetně, vypište "Číslo je v rozmezí."
.
Cvičení 5: Složené podmínky
Napište program v jazyce Python, který požádá uživatele o zadání jeho věku a zda má řidičský průkaz (ano/ne). Pokud je osobě více než 18 let a má řidičský průkaz, vypište "Jste způsobilý k řízení."
. Pokud je osobě více než 18 let, ale nemá řidičský průkaz, vypište "Musíte si udělat řidičský průkaz"
. Pokud je osobě méně než 18 let, vytiskněte "Jste příliš mladý na řízení"
.