Pythoni ‘or’ operaator: Põhjalik juhend algajatele ja edasijõudnutele

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.

年収訴求