1. Pythoni ‘or’ operaatori põhitõed
‘or’ operaator – mis see on?
or
operaator on üks Pythoni loogikaoperaatoritest, mis tagastab True
, kui üks kahest tingimusest on True
. See tagastab False
ainult siis, kui mõlemad tingimused on False
. Seda operaatorit kasutatakse eelkõige mitme tingimuse kombineerimisel, võimaldades lühidat tingimuslikku hargnemist.
Põhiline kasutus
or
operaatorit kasutatakse järgmiselt: kaks tingimust ühendatakse or
-ga ja kui üks neist on True
, on kogu avaldis True
.
a = 5
b = 10
if a > 3 or b < 5:
print("Üks tingimustest on tõene")
else:
print("Mõlemad tingimused on väärad")
Selles näites on a > 3
True
ja b < 5
on False
. Kuid kuna kasutatakse or
operaatorit, on kogu avaldise tulemus True
, kui kasvõi üks tingimus on True
.
or
operaatori omadused
or
operaatoril on omadus nimega lühishindamine (short-circuit evaluation). See tähendab, et kui vasakpoolne tingimus on True
, siis parempoolset tingimust ei hinnata ja see jäetakse vahele. See võib aidata säästa arvutusressursse.
Näiteks järgmises koodis jäetakse b == 10
hindamata, kuna esimene tingimus on True
.
a = 5
b = 10
if a > 3 or b == 10:
print("a on suurem kui 3, seega hindamine lõpeb siin")

2. ’if’-lause ja ‘or’ operaatori kasutamine
‘or’ operaatori kasutamine mitme tingimuse korral
Pythoni if
-lausete puhul on or
operaator väga mugav mitme tingimuse hindamisel. Näiteks kui soovite teostada teatud toimingu, kui teatud tingimus on täidetud, saab or
-i kasutamine koodi lihtsustada.
Järgnev on näide or
operaatori kasutamisest kasutaja vanuse alusel tegevuse määramiseks.
age = 16
if age < 18 or age > 65:
print("Olete soodustuse saaja")
else:
print("Te ei saa soodustust")
Selles näites rakendatakse soodustust alla 18-aastastele või üle 65-aastastele kasutajatele. or
-i kasutamine võimaldab kahte tingimust lihtsalt kombineerida.
Mitme tingimuse ja ‘or’-i kombinatsioon
Ka keerulisemaid tingimusi saab or
abil lihtsustada. Järgnevas näites kasutatakse mitut muutujat ja töötlemine toimub, kui kumbki neist vastab määratud tingimusele.
temperature = 35
humidity = 70
if temperature > 30 or humidity > 60:
print("Lülitage konditsioneer sisse")
else:
print("Konditsioneer pole vajalik")
Sel juhul, kui temperatuur ületab 30 kraadi või niiskus ületab 60%, antakse juhis konditsioneer sisse lülitada. Nii saab or
-i kasutada igapäevaste otsuste lihtsustamiseks.

3. ‘or’ operaatori rakendused
‘or’ operaatori kasutusnäited väljaspool ’if’-lauseid
or
operaatorit saab kasutada mitte ainult if-lausete sees, vaid ka mitmel muul juhul. Eriti kasulik on see vaikeväärtuste seadistamisel. Seda saab kasutada näiteks kontrollimaks, kas loend või sõnastik on None
või tühi, ja sel juhul neile vaikeväärtuse määramiseks.
def get_list(l=None):
l = l or []
return l
print(get_list()) # Tulemus: []
print(get_list([1, 2, 3])) # Tulemus: [1, 2, 3]
Selles näites tagastatakse tühi loend, kui loend on None
. or
operaatori kasutamine võimaldab kirjutada lihtsat koodi ilma tingimusliku hargnemiseta.
Mitme ‘or’-i kasutamine
On ka juhtumeid, kus or
-ga ühendatakse kolm või enam tingimust. Sellistel juhtudel hinnatakse tingimusi vasakult paremale ja tagastatakse esimene True
väärtus.
result = None or "default" or "another"
print(result) # Tulemus: default
Selles näites peetakse esimest None
-i False
-ks, seega tagastatakse tulemuseks järgmine väärtus “default”. Nii saab or
operaatorit kasutades valida mitmest tingimusest kõige sobivama väärtuse.
4. ‘and’ ja ‘or’ erinevused
Põhiline erinevus
and
ja or
on mõlemad loogikaoperaatorid, kuid nende käitumine on täiesti erinev. Kui or
operaator tagastab True
, kui ükskõik milline tingimus on True
, siis and
operaator tagastab True
ainult siis, kui mõlemad tingimused on True
.
Vaatame näiteks järgmist koodi:
a = True
b = False
if a and b:
print("Mõlemad on tõesed")
else:
print("Üks või mõlemad on väärad")
Selles näites, kuigi a
on True
, on b
False
, nii et kogu tulemus on False
ja käivitatakse else
-osa. Võrreldes or
operaatoriga on and
-i suur erinevus see, et mõlemad peavad olema True
.
Kasutusnäited mitme tingimuse korral
Kui kasutate and
ja or
koos, on tingimuste selgitamiseks soovitatav kasutada sulgusid.
temperature = 25
weather = "rainy"
if (temperature > 20 and temperature < 30) or weather == "rainy":
print("Võtke vihmavari kaasa")
else:
print("Vihmavari pole vajalik")
Sel juhul, kui temperatuur on vahemikus 20 kuni 30 kraadi või ilm on vihmane, antakse juhis vihmavari kaasa võtta. and
ja or
kombineerimine võimaldab keerulisi tingimusi lühidalt väljendada.

5. ‘or’ operaatori jõudluse optimeerimine
Jõudluse parandamine lühishindamise abil
Üks or
operaatori suurimaid eeliseid on “lühishindamise” omadus, mis tähendab, et kui vasakpoolne tingimus on True
, siis parempoolset tingimust ei hinnata. See aitab vältida tarbetuid arvutusi ja parandab töötlemiskiirust.
Näiteks järgnevas koodis, kui can_edit()
on True
, siis can_publish()
ei käivitata.
def can_edit():
return True
def can_publish():
print("Seda funktsiooni ei kutsuta")
return True
if can_edit() or can_publish():
print("Saab muuta või avaldada")
Selles näites, kuna or
-i vasak pool on True
, siis parempoolset can_publish()
-i ei kutsuta ja tarbetut töötlemist ei toimu. Seega on or
-i abil tingimusliku hargnemise kasutamine oluline tehnika tõhusa koodi kirjutamiseks.
Praktiline rakendusnäide
Suurte andmekogumite käsitlemisel või mitme tingimuse kiirel töötlemisel saab lühishindamise abil töötlusaega lühendada. or
operaatori kasutamine aitab vältida ebavajalikku töötlemist ja saavutada tõhusa koodi.

6. Kokkuvõte
‘or’ operaatori kordamine
or
operaatoril on Pythoni programmeerimises loogikaoperatsioonide alusena väga oluline roll. Sellel on omadus tagastada True
, kui üks mitmest tingimusest on True
, ja seda kasutatakse paljudes olukordades, näiteks tingimuslikus hargnemises ja vaikeväärtuste seadistamisel. Lisaks viib or
operaatori lühishindamine ka jõudluse optimeerimiseni.
Proovige seda tegelikus koodis
Lisaks teooriale soovitame tungivalt proovida or
operaatorit tegelikus Pythoni arenduskeskkonnas. Proovige seda laialdaselt alates põhilistest kasutusviisidest kuni täpsemate näideteni ja vaadake, kuidas kood käitub. Tingimuste avaldiste toimimise ja tõhusa koodi kirjutamise kogemine süvendab teie arusaama.