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íkendPodmí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 TruejeTrueTrue or FalsejeTrueFalse or TruejeTrueFalse or FalsejeFalse
Č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 domaNejdří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í.
Jak psát:
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
8/11