← Zpět na hodinu

2. hodina – Podmínky

Porovnávání hodnot, větvení pomocí if, elif a else a logické operátory.

Výklad a cvičení

Výklad si můžeš přečíst přímo na webu. Příklady procházej po pořadí a kód si zkoušej ve VS Code.

Zpět na přehled materiálů

Porovnávání

Procházej příklady postupně, pak si vyzkoušej cvičení. Kód z bloků si můžeš zkopírovat do Python souboru ve VS Code a spustit. Příklady na jedné stránce na sebe mohou navazovat.

Zpět na přehled hodiny

Porovnávání hodnot

Spusť soubor a sleduj, co se vypíše.

Python umí porovnávat hodnoty – zeptat se třeba „je pět větší než tři?". Na každou takovou otázku odpoví True (pravda), nebo False (nepravda).

Je rovno? Píše se DVĚMA rovnítky == (jedno rovnítko = už známe, to ukládá hodnotu do proměnné)

print(5 == 5)     # True   pět se rovná pěti
print(5 == 3)     # False  pět se nerovná třem

Není rovno? Píše se !=

print(5 != 3)     # True   pět není tři
print(5 != 5)     # False  pět se rovná pěti, podmínka „není rovno" tedy neplatí

Větší > a menší <

print(5 > 3)      # True   pět je opravdu větší než tři
print(5 < 3)      # False  pět není menší než tři

Větší nebo rovno >= a menší nebo rovno <=

print(5 >= 5)     # True   pět je rovno pěti (stačí, aby platila jedna z možností)
print(3 <= 2)     # False  tři není menší ani rovno dvěma

Porovnávat se dá i text – Python kouká, jestli jsou řetězce stejné:

print("Anna" == "Anna")   # True   oba řetězce jsou úplně stejné
print("Anna" == "anna")   # False  liší se první písmeno, velké a malé není totéž

Zpět na téma: Porovnávání · Další: Booleovské hodnoty (True / False)

Zdrojový Python soubor

Booleovské hodnoty (True / False)

Spusť soubor a sleduj, co se vypíše.

Výsledek porovnání je vždycky jedna ze dvou hodnot: True, nebo False. Říká se jim booleovské hodnoty (podle matematika George Boolea). Je to nový datový typ – stejně jako číslo nebo text.

Píšou se přesně takhle, s velkým prvním písmenem a bez uvozovek:

print(True)
print(False)

Výsledek porovnání si můžeš uložit do proměnné a používat dál:

je_plnolety = 20 >= 18
print(je_plnolety)     # True

teplota = 5
je_zima = teplota < 0
print(je_zima)         # False – 5 stupňů, ještě nemrzne

Pozor na rozdíl: = ukládá hodnotu do proměnné (vek = 20) == porovnává, jestli se rovnají (vek == 20)

vek = 20            # do proměnné vek uložíme 20
print(vek == 20)    # True   ptáme se, jestli je v ní 20
print(vek == 18)    # False

Zpět na téma: Porovnávání · Další: Cvičení: Porovnávání

Zdrojový Python soubor

Cvičení: Porovnávání

Každé cvičení má vlastní soubor ve složce lekce02-podminky/01_porovnavani/cviceni/. Otevři ho ve VS Code, doplň kód pod zadání a soubor spusť (Run). Řešení si rozklikni až po vlastním pokusu – tvoje řešení může vypadat jinak, a to je v pořádku.

Cvičení 1

Soubor: cviceni/01_cena_do_padesati.py

Máš proměnnou cena. Vypiš True/False podle toho, jestli je cena menší nebo rovna 50.

cena = 65
Zobrazit řešeníSkrýt řešení
cena = 65
print(cena <= 50)     # False, cena je 65

Cvičení 2

Soubor: cviceni/02_delitelnost_tremi.py

Vypiš True/False podle toho, jestli je číslo 12 dělitelné třemi. (Nápověda: dělitelné třemi znamená, že zbytek po dělení je nula.)

Zobrazit řešeníSkrýt řešení
print(12 % 3 == 0)    # True, zbytek po dělení je 0

Cvičení 3

Soubor: cviceni/03_ulozeni_vysledku.py

Ulož do proměnné vysledek porovnání, jestli je 2 + 2 rovno 4. Pak proměnnou vysledek vypiš.

Zobrazit řešeníSkrýt řešení
vysledek = 2 + 2 == 4
print(vysledek)       # True

Cvičení 4

Soubor: cviceni/04_prumer_znamek.py

Studentka má tři známky. Spočítej jejich průměr do proměnné prumer a vypiš True/False podle toho, jestli má na vyznamenání (průměr menší nebo rovný 2). Zamysli se: kdyby vyšlo True, co by program mohl studentce napsat?

znamka1 = 1
znamka2 = 3
znamka3 = 2
Zobrazit řešeníSkrýt řešení
znamka1 = 1
znamka2 = 3
znamka3 = 2
prumer = (znamka1 + znamka2 + znamka3) / 3
print(prumer <= 2)    # True, průměr je 2.0

Cvičení 5

Soubor: cviceni/05_cislo_nad_sto.py

Zeptej se uživatele na číslo a vypiš True/False podle toho, jestli je větší než 100. (Vzpomeň si z minula: text z input() převedeš na číslo pomocí int().)

Zobrazit řešeníSkrýt řešení
cislo = int(input("Zadej číslo: "))
print(cislo > 100)

Cvičení 6

Soubor: cviceni/06_mocnina_nad_tisic.py

Vypiš True/False podle toho, jestli je 2 na desátou (2 ** 10) větší než tisíc. Tipni si předem – překvapí tě to?

Zobrazit řešeníSkrýt řešení
print(2 ** 10 > 1000)     # True – 2 ** 10 je 1024, těsně nad tisíc

Zpět na téma: Porovnávání

Zdrojové soubory na GitHubu

Podmínky

Procházej příklady postupně, pak si vyzkoušej cvičení. Kód z bloků si můžeš zkopírovat do Python souboru ve VS Code a spustit. Příklady na jedné stránce na sebe mohou navazovat.

Zpět na přehled hodiny

Rozhodování: if / else

Spusť soubor a sleduj, co se vypíše.

Umíme porovnávat – dostaneme True, nebo False. Teď podle toho necháme program rozhodnout, co udělá.

Zápis:

if podmínka:
    kód, který se spustí, když podmínka platí (je True)

Za if napíšeme podmínku, pak DVOJTEČKU. Řádky pod ní odsadíme (posuneme doprava – ve VS Code stačí klávesa Tab). Odsazení říká Pythonu „tohle patří do if-u".

vek = 20

if vek >= 18:
    print("Jsi plnoletá.")
    print("Můžeš volit.")

Oba odsazené řádky se spustí, protože vek >= 18 je True. Zkus změnit vek třeba na 15 a spusť znovu – nevypíše se nic.

Často chceme udělat něco i pro opačný případ. K tomu je else („jinak"). Spustí se, když podmínka NEPLATÍ (je False):

teplota = 5

if teplota > 15:
    print("Je hezky, jde se ven.")
else:
    print("Radši si vezmi bundu.")

Vždycky se spustí právě jedna z těch dvou větví, nikdy obě.

Odsazení je důležité – rozhoduje o tom, co do if-u patří, a začátečnice na něm chybují nejčastěji.

Řádek BEZ odsazení už do if-u nepatří a spustí se pokaždé, ať podmínka platí, nebo ne:

if teplota > 15:
    print("Tohle jen když je teplo.")
print("Tohle se vypíše vždycky.")

A naopak řádky, které do if-u patří, musí být odsazené STEJNĚ – nejlíp pořád klávesou Tab. Když to nesedí, Python soubor ani nespustí a vypíše chybu IndentationError. Například tady je třetí řádek odsazený víc:

if vek >= 18:
    print("Jsi plnoletá.")
        print("Můžeš volit.")     # IndentationError!

Až tuhle chybu uvidíš (a uvidíš ji často), zkontroluj, jestli máš všechny řádky v bloku odsazené na stejné úrovni.


Zpět na téma: Podmínky · Další: Víc možností: elif

Zdrojový Python soubor

Víc možností: elif

Spusť soubor a sleduj, co se vypíše.

if a else zvládnou dvě možnosti. Když jich je víc, přidáme mezi ně elif (zkratka za „else if" – tedy „jinak když"). Můžeš jich mít kolik chceš.

Zápis:

if podmínka1:
    ...
elif podmínka2:
    ...
else:
    ...
znamka = 2

if znamka == 1:
    print("Výborně!")
elif znamka == 2:
    print("Chvalitebně.")
elif znamka == 3:
    print("Dobře.")
else:
    print("Příště to půjde líp.")

Python zkouší podmínky odshora dolů a zastaví se u PRVNÍ, která platí. Její větev spustí a zbytek přeskočí. Proto se vždycky spustí nejvýš jedna větev.

else je nepovinné. Když ho vynecháš a žádná podmínka neplatí, neudělá se prostě nic:

teplota = 25

if teplota < 0:
    print("Mrzne.")
elif teplota < 15:
    print("Chladno.")
elif teplota < 25:
    print("Příjemně.")

Při teplotě 25 neplatí ani jedna podmínka (25 není menší než 25), takže se nevypíše nic. Zkus změnit teplotu na 10.


Zpět na téma: Podmínky · Další: if uvnitř if (vnořené podmínky)

Zdrojový Python soubor

if uvnitř if (vnořené podmínky)

Spusť soubor a sleduj, co se vypíše.

if můžeš dát dovnitř jiného if. Hodí se, když chceš něco ověřit TEPRVE potom, co platí něco jiného. Vnitřní blok jen odsadíš ještě o kus dál.

venku_prsi = True
mam_destnik = False

if venku_prsi:
    print("Venku prší.")
    # Tenhle if řešíme jen tehdy, když prší:
    if mam_destnik:
        print("Naštěstí mám deštník.")
    else:
        print("A nemám deštník – zmoknu.")
else:
    print("Je sucho, pohoda.")

Všimni si dvou úrovní odsazení: vnější if řeší déšť, vnitřní if (odsazený víc) řeší deštník.

Kdy vnořený if a kdy elif?

elif se hodí, když se rozhoduješ mezi možnostmi JEDNÉ otázky (jaká je známka? jaká je teplota?) – platí právě jedna větev.

Vnořený if se hodí, když se ptáš na DVĚ různé věci za sebou a druhá má smysl jen podle výsledku první (prší? a když prší, mám deštník?).


Zpět na téma: Podmínky · Další: Podmínka na vstup od uživatele

Zdrojový Python soubor

Podmínka na vstup od uživatele

Spusť soubor a vyzkoušej ho víckrát s různými čísly.

Teď spojíme dohromady všechno: vstup od uživatele (input z minula) a rozhodování (if). Program se zeptá a podle odpovědi zareaguje.

Vzpomeň si na čtverec z minulé lekce. Tehdy jsme stranu psali napevno. Teď ji necháme zadat uživatele – a ověříme, že dává smysl.

strana = float(input("Zadej stranu čtverce v centimetrech: "))

if strana > 0:
    print("Obvod je", 4 * strana, "cm")
    print("Obsah je", strana * strana, "cm²")
else:
    print("Strana musí být kladné číslo.")

Zkus program spustit dvakrát: jednou zadej 5, podruhé -3. Uvidíš, že se pokaždé provede jiná větev.

Nezapomeň na převod: input() vrací vždycky text. Kdybychom napsali jen strana = input(...), byl by v proměnné text "5", ne číslo 5, a počítat by s ním nešlo. Proto ho převádíme na číslo pomocí float().


Zpět na téma: Podmínky · Další: Cvičení: Podmínky

Zdrojový Python soubor

Cvičení: Podmínky

Každé cvičení má vlastní soubor ve složce lekce02-podminky/02_podminky/cviceni/. Otevři ho ve VS Code, doplň kód pod zadání a soubor spusť (Run). Řešení si rozklikni až po vlastním pokusu – tvoje řešení může vypadat jinak, a to je v pořádku.

Cvičení 1

Soubor: cviceni/01_plnoletost.py

Máš proměnnou vek. Vypiš "Jsi plnoletá.", když je vek 18 a víc, jinak vypiš "Ještě ne.".

vek = 16
Zobrazit řešeníSkrýt řešení
vek = 16
if vek >= 18:
    print("Jsi plnoletá.")
else:
    print("Ještě ne.")

Cvičení 2

Soubor: cviceni/02_znamky_a_vyznamenani.py

Vrať se ke studentce se třemi známkami. Spočítej průměr a vypiš "Máš vyznamenání!", když je průměr menší nebo rovný 2, jinak vypiš "Bez vyznamenání.".

znamka1 = 1
znamka2 = 3
znamka3 = 2
Zobrazit řešeníSkrýt řešení
znamka1 = 1
znamka2 = 3
znamka3 = 2
prumer = (znamka1 + znamka2 + znamka3) / 3
if prumer <= 2:
    print("Máš vyznamenání!")
else:
    print("Bez vyznamenání.")

Cvičení 3

Soubor: cviceni/03_velke_cislo.py

Zeptej se uživatele na číslo. Vypiš "Velké číslo!", když je větší než 100, jinak "Malé číslo.".

Zobrazit řešeníSkrýt řešení
cislo = int(input("Zadej číslo: "))
if cislo > 100:
    print("Velké číslo!")
else:
    print("Malé číslo.")

Cvičení 4

Soubor: cviceni/04_semafor.py

Máš proměnnou barva se stavem semaforu ("červená", "oranžová" nebo "zelená"). Vypiš, co má řidič udělat: "červená" → "Stůj", "oranžová" → "Připrav se", "zelená" → "Jeď", cokoli jiného → "Neznámý signál".

barva = "zelená"
Zobrazit řešeníSkrýt řešení
barva = "zelená"
if barva == "červená":
    print("Stůj")
elif barva == "oranžová":
    print("Připrav se")
elif barva == "zelená":
    print("Jeď")
else:
    print("Neznámý signál")

Cvičení 5

Soubor: cviceni/05_znamka_z_bodu.py

Zeptej se na počet bodů z testu (0 až 100) a vypiš známku: 90 a víc → 1, 75 a víc → 2, 60 a víc → 3, 40 a víc → 4, jinak → 5.

Zobrazit řešeníSkrýt řešení
body = int(input("Kolik bodů? "))
if body >= 90:
    print(1)
elif body >= 75:
    print(2)
elif body >= 60:
    print(3)
elif body >= 40:
    print(4)
else:
    print(5)

Cvičení 6

Soubor: cviceni/06_vnorena_podminka.py

Vnořená podmínka s otázkami na uživatele. Zeptej se: "Máš hlad? (ano/ne)" a ulož odpověď do proměnné hlad. Když má hlad, zeptej se ještě "Máš doma jídlo? (ano/ne)":

Zobrazit řešeníSkrýt řešení
hlad = input("Máš hlad? (ano/ne) ")
if hlad == "ano":
    jidlo = input("Máš doma jídlo? (ano/ne) ")
    if jidlo == "ano":
        print("Uvař si.")
    else:
        print("Objednej si.")
else:
    print("Tak nic, uvidíme později.")

Zpět na téma: Podmínky · Další: Bonusová cvičení: Podmínky

Zdrojové soubory na GitHubu

Bonusová cvičení: Podmínky

Bonusy jsou pro rychlíky – když máš hotová cvičení a zbývá čas. Každý bonus má vlastní soubor ve složce lekce02-podminky/02_podminky/cviceni_bonusy/. Řešení si rozklikni až po vlastním pokusu – tvoje řešení může vypadat jinak, a to je v pořádku.

Bonus 1

Soubor: cviceni_bonusy/01_sude_nebo_liche.py

Sudé, nebo liché? Zeptej se uživatele na celé číslo a vypiš, jestli je sudé, nebo liché.

Zobrazit řešeníSkrýt řešení
cislo = int(input("Zadej celé číslo: "))
if cislo % 2 == 0:
    print("Sudé")
else:
    print("Liché")

Bonus 2

Soubor: cviceni_bonusy/02_nejvetsi_ze_tri.py

Největší ze tří. Máš tři čísla. Zjisti a vypiš to největší z nich.

a = 12
b = 25
c = 8
Zobrazit řešeníSkrýt řešení

Zatím bez and/or – poradíme si vnořenými if.

a = 12
b = 25
c = 8
if a >= b:
    if a >= c:
        print(a)
    else:
        print(c)
else:
    if b >= c:
        print(b)
    else:
        print(c)

Bonus 3

Soubor: cviceni_bonusy/03_bum_bac.py

Bum-Bác pro jedno číslo. Zeptej se na číslo a vypiš:

Zobrazit řešeníSkrýt řešení

Dělitelnost třemi i pěti = dělitelnost patnácti. Musí se testovat jako první – jinak by číslo spadlo hned do větve "Bum" nebo "Bác" a na "BumBác" by nikdy nedošlo.

cislo = int(input("Zadej číslo: "))
if cislo % 15 == 0:
    print("BumBác")
elif cislo % 3 == 0:
    print("Bum")
elif cislo % 5 == 0:
    print("Bác")
else:
    print(cislo)

Bonus 4

Soubor: cviceni_bonusy/04_mala_kalkulacka.py

Malá kalkulačka. Zeptej se na dvě čísla a na znaménko (+, -, *, /). Podle znaménka vypiš výsledek správné operace. Bonus v bonusu: ošetři dělení nulou vlastní hláškou.

Zobrazit řešeníSkrýt řešení
a = float(input("První číslo: "))
b = float(input("Druhé číslo: "))
znamenko = input("Znaménko (+, -, *, /): ")

if znamenko == "+":
    print(a + b)
elif znamenko == "-":
    print(a - b)
elif znamenko == "*":
    print(a * b)
elif znamenko == "/":
    if b == 0:
        print("Nulou dělit nelze.")
    else:
        print(a / b)
else:
    print("Neznámé znaménko.")

Zpět na téma: Podmínky

Zdrojové soubory na GitHubu

And, or a not

Procházej příklady postupně, pak si vyzkoušej cvičení. Kód z bloků si můžeš zkopírovat do Python souboru ve VS Code a spustit. Příklady na jedné stránce na sebe mohou navazovat.

Zpět na přehled hodiny

Spojování podmínek: and a or

Spusť soubor a sleduj, co se vypíše.

Někdy nestačí jedna podmínka. Chceme třeba, aby platily dvě zároveň, nebo aby stačila aspoň jedna. K tomu jsou and a or.

and ... a zároveň – platí, jen když platí OBĚ podmínky or ... nebo – platí, když platí ASPOŇ JEDNA podmínka

and – musí platit obojí:

vek = 25
print(vek >= 18 and vek < 65)   # True – je zároveň dospělý i mladší 65

or – stačí jedno:

den = "sobota"
print(den == "sobota" or den == "neděle")   # True – je to víkend

Praktická ukázka. Obdélník má dvě strany a obě musí být kladné. Dřív bychom to řešili vnořeným if, teď stačí jeden řádek s or:

a = 5
b = -2

if a <= 0 or b <= 0:
    print("Strany musí být kladné.")
else:
    print("Obvod je", 2 * (a + b))

Pozor: and/or spojují CELÉ podmínky, ne holá čísla. Všimni si, že nahoře máme porovnání dvakrát – zvlášť pro a a zvlášť pro b:

if a <= 0 or b <= 0:      # správně

Když se to pokusíš zkrátit takhle, je to chyba:

if a or b <= 0:           # ŠPATNĚ

Python to čte jako „(a) nebo (b <= 0)" – u prvního čísla žádné porovnání není. Vždycky napiš celé porovnání na OBOU stranách or / and.

A vzpomínáš na „největší ze tří" z bonusového cvičení? S and se z toho stane jediná podmínka místo vnořených if:

x = 12
y = 25
z = 8

if x >= y and x >= z:
    print("Největší je", x)
elif y >= x and y >= z:
    print("Největší je", y)
else:
    print("Největší je", z)

Zpět na téma: And, or a not · Další: Otočení podmínky: not

Zdrojový Python soubor

Otočení podmínky: not

Spusť soubor a sleduj, co se vypíše.

not znamená „ne". Otočí hodnotu naruby: z True udělá False a naopak. Hodí se, když chceš reagovat na to, že něco NEPLATÍ.

print(not True)     # False
print(not False)    # True

not před podmínkou ji obrátí:

prsi = False
print(not prsi)    # True – „neprší"

Typické použití – reagovat na opak:

prihlaseny = False

if not prihlaseny:
    print("Nejprve se přihlas.")

not umí otočit i celou složenou podmínku. Dej ji do závorky a před ni napiš not – tím obrátíš výsledek CELÉ závorky.

heslo_ok = True
jmeno_ok = False

„platí obojí" je True jen tehdy, když sedí heslo i jméno:

print(heslo_ok and jmeno_ok)        # False

not (…) otočí výsledek té závorky – „neplatí obojí":

print(not (heslo_ok and jmeno_ok))  # True

if not (heslo_ok and jmeno_ok):
    print("Přihlášení selhalo.")

Čti to jako „není pravda, že platí heslo i jméno zároveň". Závorka je důležitá – řekne Pythonu, co přesně má not otočit.


Zpět na téma: And, or a not · Další: Cvičení: And, or a not

Zdrojový Python soubor

Cvičení: And, or a not

Každé cvičení má vlastní soubor ve složce lekce02-podminky/03_and_or_not/cviceni/. Otevři ho ve VS Code, doplň kód pod zadání a soubor spusť (Run). Řešení si rozklikni až po vlastním pokusu – tvoje řešení může vypadat jinak, a to je v pořádku.

Cvičení 1

Soubor: cviceni/01_platny_trojuhelnik.py

Platný trojúhelník. Ze tří stran jde sestavit trojúhelník jen tehdy, když je součet každých dvou stran větší než ta třetí. Vypiš "Platný trojúhelník." / "Takový trojúhelník nejde.".

a = 3
b = 4
c = 5
Zobrazit řešeníSkrýt řešení
a = 3
b = 4
c = 5
if a + b > c and a + c > b and b + c > a:
    print("Platný trojúhelník.")
else:
    print("Takový trojúhelník nejde.")

Cvičení 2

Soubor: cviceni/02_prestupny_rok.py

Přestupný rok. Rok je přestupný, když je dělitelný čtyřmi, ale ne stovkou – NEBO když je dělitelný čtyřmi sty. Zeptej se na rok a vypiš "Přestupný." / "Nepřestupný.". (Vyzkoušej 2024, 1900, 2000.)

Zobrazit řešeníSkrýt řešení
rok = int(input("Zadej rok: "))
if (rok % 4 == 0 and rok % 100 != 0) or rok % 400 == 0:
    print("Přestupný.")
else:
    print("Nepřestupný.")

Cvičení 3

Soubor: cviceni/03_prihlaseni.py

Přihlášení. Správné jméno je "anna" a správné heslo je "tajne". Zeptej se na jméno i heslo a vypiš "Vítej!", jen když sedí obojí. Jinak vypiš "Špatné údaje.".

Zobrazit řešeníSkrýt řešení
jmeno = input("Jméno: ")
heslo = input("Heslo: ")
if jmeno == "anna" and heslo == "tajne":
    print("Vítej!")
else:
    print("Špatné údaje.")

Cvičení 4

Soubor: cviceni/04_ridicak.py

Smíš řídit? Řídit můžeš, jen když máš řidičák a zároveň zrovna NEMÁŠ zákaz řízení. Vypiš "Můžeš řídit." / "Za volant nesmíš.".

ma_ridicak = True
ma_zakaz = True
Zobrazit řešeníSkrýt řešení
ma_ridicak = True
ma_zakaz = True
if ma_ridicak and not ma_zakaz:
    print("Můžeš řídit.")
else:
    print("Za volant nesmíš.")

Cvičení 5

Soubor: cviceni/05_sleva_na_vstupne.py

Sleva na vstupné. Slevu mají děti (do 18 let) a senioři (65 a víc). Navíc mají v pondělí slevu úplně všichni. Zeptej se na věk a na den a vypiš "Máš slevu." / "Plné vstupné.".

Zobrazit řešeníSkrýt řešení
vek = int(input("Věk: "))
den = input("Den: ")
if vek < 18 or vek >= 65 or den == "pondělí":
    print("Máš slevu.")
else:
    print("Plné vstupné.")

Cvičení 6

Soubor: cviceni/06_zabezpeceni_domu.py

Zabezpečení domu. Dům je zabezpečený, jen když jsou zavřené dveře, zavřená okna a zároveň zapnutý alarm. Zeptej se na všechny tři věci (ano/ne). Pomocí not (…) vypiš "Pozor, dům není zabezpečený!", když zabezpečený NENÍ, jinak vypiš "Zabezpečeno.".

Zobrazit řešeníSkrýt řešení
dvere = input("Zavřené dveře? (ano/ne) ")
okna = input("Zavřená okna? (ano/ne) ")
alarm = input("Zapnutý alarm? (ano/ne) ")
if not (dvere == "ano" and okna == "ano" and alarm == "ano"):
    print("Pozor, dům není zabezpečený!")
else:
    print("Zabezpečeno.")

Zpět na téma: And, or a not · Další: Bonusová cvičení: And, or a not

Zdrojové soubory na GitHubu

Bonusová cvičení: And, or a not

Bonusy jsou pro rychlíky – když máš hotová cvičení a zbývá čas. Každý bonus má vlastní soubor ve složce lekce02-podminky/03_and_or_not/cviceni_bonusy/. Řešení si rozklikni až po vlastním pokusu – tvoje řešení může vypadat jinak, a to je v pořádku.

Bonus 1

Soubor: cviceni_bonusy/01_druh_trojuhelniku.py

Druh trojúhelníku. Máš tři strany. Urči a vypiš, jaký to je trojúhelník:

a = 5
b = 5
c = 8
Zobrazit řešeníSkrýt řešení
a = 5
b = 5
c = 8
if a == b and b == c:
    print("rovnostranný")
elif a == b or b == c or a == c:
    print("rovnoramenný")
else:
    print("různostranný")

Bonus 2

Soubor: cviceni_bonusy/02_vstup_do_klubu.py

Vstup do klubu. Dovnitř smí ten, komu je aspoň 18 let A ZÁROVEŇ je buď členem, NEBO má pozvánku. Kdo má zákaz vstupu, dovnitř nesmí nikdy – ani člen, ani s pozvánkou. Zamysli se, kam patří závorky, aby podmínka fungovala správně. Vypiš "Vítej v klubu." / "Dnes se nedostaneš.".

vek = 20
je_clen = False
ma_pozvanku = True
ma_zakaz = True
Zobrazit řešeníSkrýt řešení
vek = 20
je_clen = False
ma_pozvanku = True
ma_zakaz = True

if not ma_zakaz and vek >= 18 and (je_clen or ma_pozvanku):
    print("Vítej v klubu.")
else:
    print("Dnes se nedostaneš.")

Bonus 3

Soubor: cviceni_bonusy/03_kamen_nuzky_papir.py

Kámen, nůžky, papír. Zeptej se obou hráčů na tah – ať zadají "kamen", "nuzky" nebo "papir". Vypiš, kdo vyhrál:

Zobrazit řešeníSkrýt řešení
hrac1 = input("Hráč 1 (kamen/nuzky/papir): ")
hrac2 = input("Hráč 2 (kamen/nuzky/papir): ")
if hrac1 == hrac2:
    print("Remíza.")
elif (hrac1 == "kamen" and hrac2 == "nuzky") or (hrac1 == "nuzky" and hrac2 == "papir") or (hrac1 == "papir" and hrac2 == "kamen"):
    print("Vyhrál hráč 1.")
else:
    print("Vyhrál hráč 2.")

Zpět na téma: And, or a not

Zdrojové soubory na GitHubu