Institute of Computer Science
Courses.cs.ut.ee Institute of Computer Science University of Tartu
  1. Courses
  2. 2026/27 fall
  3. Computer Programming (LTAT.03.001)
ET
Log in

Computer Programming 2026/27 fall

  • Üldinfo
  • 1. Muutuja ja avaldis
  • 2. Tingimuslause
  • 3. Funktsioon
  • 4. Korduslause
  • 5. Sõned. Lihtsam failitöötlus
  • 6. Kontrolltöö 1
6.1 Kontrolltöö 1 kordamine
6.2 Kontrolltöö 1 vormistuse soovitused
6.3 Kontrolltöö 1 punktilise osa ülesannete näited
  • 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

Kontrolltöö 1 vormistuse soovitused

NB! Kontrolltöös ei nõuta main-funktsiooni kasutamist, kuid põhiprogramm peaks tulema faili kõige lõppu (pärast kõiki funktsioone).

Kommenteerimine

Robert C. Martin väidab oma raamatus "Clean Code: A Handbook of Agile Software Craftsmanship", et programmeerimisel pole niivõrd oluline igat rida kommenteerida, vaid programm peaks olema kirjutatud ja struktureeritud selliselt, et see on selgesti loetav ja arusaadav. Siiski ei tähenda see, et koodis ei peaks üldse kommentaare olema. Näiteks keerulise funktsiooni kirjutamisel on väga mõistlik teatud ridu kommenteerida, et koodist paremini aru saada. Hea stiil oleks vähemalt funktsioonide juurde kirjutada, mida see funktsioon tegema peab. Koodi struktureerimiseks ja kommenteerimiseks võiks kasutada standardeid PEP 8 ja PEP 257 (vt allpool).

Programmi struktuur

Programmide kirjutamisel on oluline järgida ühtset programmi struktuuri selles järjekorras:

  1. Moodulite importimine
  2. Funktsioonide defineerimine
  3. Põhiprogramm

Moodulite importimine

Programmis vajalike moodulite importimine peaks toimuma programmifaili alguses. Näiteks kui soovime programmis kasutada arvu pii väärtust moodulist math, siis võiks programmi alguses importida konstandi pi selliselt:

from math import pi

Funktsioonide defineerimine

Funktsiooni saab kasutada alles siis, kui see on defineeritud, ehk programm on funktsiooni nn sisse lugenud. Seetõttu on hea stiil panna kõik funktsioonid enne põhiprogrammi tegevusi. Näiteks kui soovime luua funktsiooni, mis leiab ringi pindala, siis võiks see funktsioon olla programmi alguses kohe pärast moodulite importimist. Samuti oleks hea jätta funktsioonide vahele (ja importide ning esimese funktsiooni vahele) 2 tühja rida. Funktsiooni algusesse võiks kirjutada lühikese kirjelduse (docstring, vt allpool). Näide:

from math import pi


def ringi_pindala(raadius):
    """Leiab ringi pindala kahe komakohani ümardatult."""
    pindala = pi * raadius ** 2
    return round(pindala, 2)

Põhiprogramm

Pärast moodulite importimist ja funktsioonide defineerimist võiks tulla põhiprogramm. Põhiprogrammi saab kirjutada pärast funktsioone selliselt:

from math import pi


def ringi_pindala(raadius):
    """Leiab ringi pindala kahe komakohani ümardatult."""
    pindala = pi * raadius ** 2
    return round(pindala, 2)


print(ringi_pindala(5))
print(ringi_pindala(10))

Programmi väljund:

78.54
314.16

Main-funktsioon

Kuna põhiprogrammis võib olla mitmeid käsklusi, siis oleks hea need koondada ühte põhifunktsiooni, mille nimi võiks olla main. Sel juhul peaks funktsiooni main programmi lõpus ka välja kutsuma.

Sellisel juhul oleks kogu programm selline:

from math import pi


def ringi_pindala(raadius):
    """Leiab ringi pindala kahe komakohani ümardatult."""
    pindala = pi * raadius ** 2
    return round(pindala, 2)


def main():
    print(ringi_pindala(5))
    print(ringi_pindala(10))


main()

Veel parem stiil on kutsuda main() välja if-lauses, et vältida main-funktsiooni käivitamist siis, kui faili teisest failist importida. Kui faili käivitada otse, siis täidetakse main(); kui faili importida, siis mitte. Kogu programm oleks sel juhul selline:

from math import pi


def ringi_pindala(raadius):
    """Leiab ringi pindala kahe komakohani ümardatult."""
    pindala = pi * raadius ** 2
    return round(pindala, 2)


def main():
    print(ringi_pindala(5))
    print(ringi_pindala(10))


if __name__ == "__main__":
    main()

PS! Kontrolltöös ei nõuta main-funktsiooni kasutamist, aga põhiprogramm võiks tulla kõige lõpus.

Standardid PEP 8 ja PEP 257

Pythoni koodi kirjutamisel on abiks ka standardid. PEP 8 standard kirjeldab näiteks, millised võiksid olla muutujanimed, kuhu asetada tühikud jne: https://peps.python.org/pep-0008/.

Kommenteerimisel tuleb appi standard PEP 257, mis soovitab funktsioonide kommenteerimisel võtta kasutusele docstring. Docstring on kolmekordsetesse jutumärkidesse kirjutatud lühike kirjeldus, mis asub funktsiooni esimesel real kohe pärast funktsiooni päist:

def ringi_pindala(raadius):
    """Leiab ringi pindala kahe komakohani ümardatult."""
    pindala = pi * raadius ** 2
    return round(pindala, 2)

Rohkem infot PEP 257 ja docstringi kohta leiab aadressilt https://peps.python.org/pep-0257/.

  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment