1. Pythoni tingimuslausete põhialused
Pythonit kasutatakse laialdaselt kui lihtsat ja võimsat programmeerimiskeelt, kuid eriti oluline on tingimuslausete kasutamine, et kontrollida programmi käitumist. Selles artiklis selgitame Pythoni tingimuslausete põhialuseid ning switch
-lausete alternatiive.
Mis on Pythoni tingimuslause?
Pythoni tingimuslausete abil juhitakse programmi voogu vastavalt kindlatele tingimustele. Näiteks saab sõltuvalt muutuja väärtusest käivitada erineva koodi. Pythonis tehakse seda if
-lausete abil.
if-elif-else struktuuri põhialused
Pythoni tingimuslause kirjutatakse järgmiselt, kasutades if
-lausete kombinatsiooni:
x = 10
if x > 5:
print("x on suurem kui 5")
elif x == 5:
print("x on võrdne 5-ga")
else:
print("x on väiksem kui 5")
Selles koodis kuvatakse “suurem kui 5”, kui x
on suurem kui 5. Kui mitte, hinnatakse järgmist tingimust. Tingimuste arvu suurenedes lisatakse elif
-lausete abil uusi tingimusi.
Miks Pythonis ei ole switch-lauset
Paljudes programmeerimiskeeltes on olemas switch
-lause, mis võimaldab lühidalt kontrollida, kas muutuja väärtus vastab ühele mitmest variandist. Pythonis aga switch
-lausete tuge pole. Põhjus on selles, et Python soodustab „lihtsat ja selget“ koodi. Kuna sama saab saavutada if-elif-else
-lausete abil, polnud vajadust lisada eraldi switch
-struktuuri.

2. Miks Pythonis puudub switch-lause
Pythoni looja eesmärk oli hoida keel võimalikult lihtne ja arusaadav, vältides liigseid keerulisi süntakse. Kuigi switch
-lause on mugav mitme haru kontrollimisel, leidsid arendajad, et seda saab hõlpsasti asendada if-elif-else
-lausete abil.
Pythoni filosoofia: lihtne ja selge kood
Pythoni filosoofia rõhutab lihtsust. Selleks on välditud liigset süntaksit ja toetutud rohkem if-elif-else
-lausetele, mis võimaldavad paindlikult tingimuslauseid realiseerida.
Tingimuslause if-elif-else abil
Pythonis saab if-elif-else
-lausete abil saavutada sama funktsionaalsuse nagu switch
-lause. Näiteks nädalapäevade kontrollimiseks:
day = "Teisipäev"
if day == "Esmaspäev":
print("Täna on esmaspäev")
elif day == "Teisipäev":
print("Täna on teisipäev")
else:
print("Kehtetu päev")
Nii saab lihtsalt hallata mitut tingimust, kuid tingimuste arv kasvades muutub kood pikemaks. Sellisel juhul tasub kaaluda tõhusamaid alternatiive.
3. Switch-lausete alternatiivid Pythonis
Kuna Pythonis puudub switch
-lause, tuleb kasutada alternatiivseid meetodeid tingimuslausete realiseerimiseks. Järgnevalt toome välja mõned levinud meetodid.
Sõnastiku (dict) kasutamine
Üks levinud viis switch
-lause asendamiseks on kasutada Pythoni sõnastikku (dict)
. Sõnastik koosneb võtme-väärtuse paaridest ja sobib hästi erinevate toimingute käivitamiseks tingimuste alusel.
def case_one():
return "See on juhtum 1"
def case_two():
return "See on juhtum 2"
switch_dict = {
1: case_one,
2: case_two
}
x = 1
print(switch_dict.get(x, lambda: "Vigane juhtum")())
Sõnastiku abil saab vastavalt võtmele käivitada funktsiooni, muutes koodi lühemaks ja loetavamaks kui if-elif-else
.
Sõnastiku eelised ja piirangud
Sõnastik muudab koodi loetavamaks ja võimaldab tingimusi efektiivselt hallata. Kuid see sobib pigem lihtsate võtme-väärtuse seoste jaoks. Kui tingimused on keerukad, on parem kasutada if-elif-else
-lausete kombinatsiooni.

4. Pythoni 3.10+ match-lause kui alternatiiv
Alates Python 3.10 versioonist on lisatud match
-lause, mis pakub sarnast funktsionaalsust nagu switch
. See võimaldab kasutada mustripõhist vastavust (pattern matching), et lihtsustada tingimuslausete kirjutamist.
match-lause põhistruktuur
match
-lausete abil saab võrrelda väärtusi ja täita esimese sobiva haru:
def get_grade(score):
match score:
case 90 <= score <= 100:
return "A"
case 80 <= score < 90:
return "B"
case _:
return "F"
grade = get_grade(85)
print(grade)
See kood tagastab vastava hinde score
väärtuse põhjal. match
-lausete abil saab kirjutada lühemaid ja selgemaid tingimusstruktuure.
5. Millist meetodit valida?
Kõigil mainitud meetoditel – if-elif-else
, sõnastik ning match
– on oma eelised. Allpool toome juhised, kuidas valida sobiv lahendus.
Kui tingimusi on vähe
Väheste tingimuste korral on if-elif-else
kõige lihtsam ja tõhusam lahendus. Sobib eriti väikeste skriptide jaoks.
Kui tingimusi on palju
Kui tingimusi on palju või on vaja funktsioonide väljakutset, on parem kasutada sõnastikku. See parandab koodi hallatavust ja loetavust.
Kui on vaja keerukaid tingimusi või mustrivastet
Kui kasutad Python 3.10 või uuemat, on match
-lause parim valik keerukate tingimuste ja mustrite kontrollimiseks.