Logické operátory: nebo

Druhý logický operátor je or, který znamená „nebo“. „Pokud je sobota nebo neděle, je víkend“:

den = "neděle"
if den == "sobota" or den == "neděle":
    print("Je víkend")

Tento kód vypíše:

Je víkend

Podmínka spojená pomocí or je pravdivá, když je pravdivá aspoň jedna z jejích částí. Nepravdivá je, jen když jsou nepravdivé všechny:

  • True or True je True
  • True or False je True
  • False or True je True
  • False or False je False

Častou chybou je zkrátit podmínku tak, jak mluvíme: den == "sobota" or "neděle". Python bere pravou část samostatně: je to jen text "neděle", žádné porovnání. Neprázdný text se počítá jako pravda, a tak je celá podmínka pravdivá vždy, i v pondělí. Každá část potřebuje vlastní porovnání: den == "sobota" or den == "neděle".

and a or můžete použít v jedné podmínce. Tak jako má násobení přednost před sčítáním, má and přednost před or. Co k sobě patří, seskupte závorkami, stejně jako v matematice:

den = "sobota"
teplota = 15
if (den == "sobota" or den == "neděle") and teplota > 20:
    print("Jedeme na výlet")
else:
    print("Zůstaneme doma")

Tento kód vypíše:

Zůstaneme doma

Nejdřív se vyhodnotí část v závorkách: je sobota, takže je pravdivá. Jenže teplota > 20 je nepravda a True and False je nepravda. Bez závorek by Python nejdřív spojil den == "neděle" and teplota > 20 a podmínka by byla pravdivá každou sobotu, ať je jakékoli počasí.

Pokyny

Kino dává slevu studentům a lidem od 65 let. Napište příkaz if, který vypíše Sleva, pokud je je_student pravda nebo je vek aspoň 65. Použijte or.

Nové pravidlo: slevy jsou jen ve středu. Na konec podmínky přidejte and den == "středa", část s or dejte do závorek a přidejte větev else, která vypíše Plná cena. Dnes je pondělí, a tak program vypíše Plná cena.

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

8/11