Arvutiteaduse instituut
Courses.cs.ut.ee Arvutiteaduse instituut Tartu Ülikool
  1. Kursused
  2. 2026/27 sügis
  3. Programmeerimine (LTAT.03.001)
EN
Logi sisse

Programmeerimine 2026/27 sügis

  • Üldinfo
  • 1. Muutuja ja avaldis
  • 2. Tingimuslause
2.1 Tingimuslause
2.2 Keerukamad tingimused
2.3 Kodutöö
2.4 Harjutused
2.5 Silmaring. Regulaaravaldised
  • 3. Funktsioon
  • 4. Korduslause
  • 5. Sõned. Lihtsam failitöötlus
  • 6. Kontrolltöö 1
  • 7. Järjend
  • 8. Järjend 2
  • 9. Kahekordne tsükkel. Failitöötlus
  • 10. Andmestruktuurid
  • 11. Andmestruktuurid 2
  • 12. Kontrolltöö 2
  • 13. Objektorienteeritud programmeerimine
  • 14. Objektorienteeritud programmeerimine 2
  • 15. Rekursioon
  • 16. Kordamine. Projektide esitlused
  • Viiteid
  • Silmaringimaterjalid
  • Materjalid

Tingimuslause

Tihti tuleb programmides teha valik, kas jätkata üht- või teistmoodi. Python võimaldab programmeerijal taolised valikud kirja panna tingimuslause ehk valikulause ehk if-lause abil.

Tingimuslause ehk if-lause päises olev tingimus on avaldis, mille väärtus on kas True või False ehk jah või ei. Näiteks järgnevas programminäites väljastastatakse ekraanile vastavalt kas True või False vastavalt sisestatud vanusele:

vanus = int(input("Sisesta vanus:"))
print(vanus >= 18)

Tingimuslause kirjutamiseks tuleb lisada if-osa, kus kontrollitakse, kas vanus on 18 aastat või rohkem. Sellisel juhul teavitatakse: "Oled piisavalt vana, et autoga sõita!".

vanus = int(input("Sisesta vanus:"))
if vanus >= 18: # See tingimus kontrollib, kas inimene on 18 aastane või vanem
    print("Oled piisavalt vana, et autoga sõita!")

Mis saab aga siis, kui vanus on alla 18 aasta? Selle saame määrata else-osas järgnevalt:

vanus = int(input("Sisesta vanus:"))
if vanus >= 18:
    print("Oled piisavalt vana, et autoga sõita!")
else: #See viiakse ellu kui if-lause tingimus ei vastanud tõele
    print("Pead veel ootama!")

Antud näites on mõlemas tingimuslause harus vaid üks käsk, aga neid võib seal olla ka rohkem.

Tingimuslause komponendid on:

  1. päis ehk tingimus, mis käib if-lause juurde,
  2. jah-haru, mis viiakse täide kui päis vastab tõele ja tagastab True (paremale nihutatud),
  3. else,
  4. else-haru, mis viiakse ellu kui päis ei vasta tõele ja tagastab False (paremale nihutatud).

Tingimusi saab (muuhulgas) moodustada järgmiste operaatoritega:

  • <, >, <=, >= sobivad arvude võrdlemiseks;
  • topeltvõrdusmärk (==) tähistab võrdsust nii arvude kui ka sõnede puhul;
  • != tähistab mittevõrdsust nii arvude kui ka sõnede puhul.
 Märkus!
 Ära unusta, et üksikut võrdusmärki (=) kasutatakse Pythonis muutujale väärtuse omistamiseks, 
 seetõttu on võrdsuse kontrollimiseks ette nähtud topeltvõrdusmärk (==).

Treppimine

if-lause kasutamisel tuleb arvesse võtta Pythoni süntaksit, ehk rõhku tuleb panna tühikutega joondamisele ehk treppimisele, sest vastasel juhul loeb arvuti koodi valesti või ei suuda seda üldse lugeda. Nii saab ära määrata, mis käsud kuuluvad tingimuslausete juurde.

arv = int(input("Mis on su lemmiknumber? "))
if arv % 2 == 0: # Kontrollib, kas arv jagub kahega ehk kas on paarisarv
    print("Sinu lemmiknumber jagub 2-ga!")
    print("Tegu on paarisarvuga!")
else:
    print("Sinu lemmiknumber ei jagu 2-ga!")
    print("Tegu on paaritu arvuga!")
print("Head aega!")

Pane tähele, et %-märk tähistab jagamisel tekkivat jääki.

Näites kuuluvad tingimuslause jah-harusse laused print("Sinu lemmiknumber jagub 2-ga!") ja print("Tegu on paarisarvuga!") ning else-harusse laused print("Sinu lemmiknumber ei jagu 2-ga!") ja print("Tegu on paaritu arvuga!").

 Mis väljastatakse sisendi 14 korral?

Programmi viimane rida ei ole trepitud ja selle pärast ei kuulu ta tingimuslause juurde, vaid kutsutakse välja igal juhul. Mis juhtuks kui viimase rea ette panna 4 tühikut?

Hiljem tuleb välja, et treppimise oskust on vaja ka paljudes muudes Pythoni konstruktsioonides. Põhimõte on, et sama kaugele joondatud read moodustavad mingi ploki ehk terviku. Plokke võib tekkida palju erinevaid.

 NB!
 Trepitud plokile eelnev rida lõpeb alati kooloniga (see on Pythonile lisakinnituseks, et 
 programmeerija soovib järgmisel real alustada trepitud plokki).

 Katsetus
 Proovi järele, kuidas Python käitub, kui unustad kasutada koolonit või jätad ära mõne taandrea. 
 Sellega saad end taoliseks situatsiooniks juba ette valmistada.

 Märkus
 Kuigi Python on treppimise osas võrdlemisi paindlik, tuleks segaduste vältimiseks alati kasutada 
 joondamiseks 4 tühikut. Thonnys kirjutades võib treppimiseks vajutada ka TAB klahvi – 
 keskkond genereerib sellepeale TAB sümboli asemel 4 tühikut. Tegelikult pole enamasti vaja isegi TAB 
 klahvi kasutada – kui vajutada kooloniga lõppeval real uue rea saamiseks ENTER-it, taipab redaktor 
 ise, et järgmine rida tuleb treppida ja lisab uue rea algusesse vajaliku arvu tühikuid. Ka 
 järgmistele ridadele pannakse usinalt tühikud ette. Andmaks märku, et uus rida enam tingimuse alla 
 ei kuulu, tuleb need tühikud ära kustutada ja alustada käsu kirjutamist jälle ekraani vasakust 
 servast.

Video sisendis kasutajalt ja väljundist ekraanile

Tingimuslause video

Mitmeharuline tingimuslause

Vahepeal võib programmeerides ette tulla olukordi, kus meil on vaja kontrollida mitmeid erinevaid tingimusi. Selle jaoks ei ole enam mõttekas kirjutada mitut erinevat if-lauset, sest see võtaks rohkem aega ja muudaks koodi segasemaks.

Oletame, et kuulus korvpallur tahab ära anda enda pusa, mille suurus on M. Ta tahab kindel olla, et loosis saaksid osaleda ainult inimesed, kellele see pusa paras on. Ta loob kiiresti sellise programmi

minu_suurus = input("Mis suuruses pusasid sa kannad (L,M,S)? ")
if minu_suurus == "L":
    print("Pusa on sulle liiga väike!")
else:
    if minu_suurus == "M":
        print("Pusa on sulle paras!")
    else:
        if minu_suurus == "S":
            print("Pusa on sulle liiga suur!")
        else:
            print("Sellist suurust pole!")

Selline kirjapilt võib aga minna trepina liiga paremale, kui tekib vajadus palju asju kontrollida. Selle jaoks on loodud Pythonisse elif, mis on olemuse poolest kombinatsioon else-st ja if-ist. Sellise koodi saaks kirjutada hoopis kergemalt.

minu_suurus = input("Mis suuruses pusasid sa kannad (L,M,S)? ")
if minu_suurus == "L":
    print("Pusa on sulle liiga väike!")
elif minu_suurus == "M":
    print("Pusa on sulle paras!")
elif minu_suurus == "S":
    print("Pusa on sulle liiga suur!")
else:
    print("Sellist suurust pole!")

Mis siis saab, kui kasutaja sisestab särgisuuruseks hoopis väikese tähe "s"? Sellisel juhul on abiks sõnede töötlemise funktsioonid nagu lower() või upper(). Näiteks saaks eelneva näite puhul tähed võrdluseks alati suureks teha, et tingimus loeks õigeks nii suure tähe "S" kui ka väikese tähe "s":

minu_suurus = input("Mis suuruses pusasid sa kannad (L,M,S)? ")
if minu_suurus.upper() == "L":
    print("Pusa on sulle liiga väike!")
elif minu_suurus.upper() == "M":
    print("Pusa on sulle paras!")
elif minu_suurus.upper() == "S":
    print("Pusa on sulle liiga suur!")
else:
    print("Sellist suurust pole!")

Käsklus pass

Vahel on soov programmi katsetada enne, kui tegevused harudes on paika pandud. Tühi plokk on Pythonis süntaksiviga, seega sellisel juhul on võimalik kasutada tingimuses käsklust pass.

Näiteks kui me ei ole veel otsustanud, mida teha suuruse XL puhul:

minu_suurus = input("Mis suuruses pusasid sa kannad (L,M,S)? ")
if minu_suurus.upper() == "XL":
    pass
elif minu_suurus.upper() == "L":
    print("Pusa on sulle liiga väike!")
elif minu_suurus.upper() == "M":
    print("Pusa on sulle paras!")
elif minu_suurus.upper() == "S":
    print("Pusa on sulle liiga suur!")
else:
    print("Sellist suurust pole!")
  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused