Institute of Computer Science
  1. Main page
  2. Python koolis
ET
Log in

Python koolis

  • Sissejuhatus
  • Teemad

1. Paigaldamine
2. Kommentaarid
3. Muutujad
4. Andmetüübid
5. Sõned
6. Operaatorid
7. Sisend ja väljund
8. Tingimus
9. Tsükkel
10. Algoritm ja plokkskeem
11. Järjend
12. Sõnastik
13. Funktsioon
14. Failioperatsioonid
15. Moodulid
16. Objektid

  • PyGame
  • ÜLESANDED

15. Moodulid

Pythonisse on sisse ehitatud hulk funktsioone. Paljud neist imporditakse Pythonit käivitades automaatselt (näiteks print(), input() jne), kuid paljude teiste puhul tuleb need enne kasutamist programmi importida. Põhjus on praktiline: nii ei koormata arvutit ülearuste võimaluste mällulaadimisega. Funktsioonide (ja klasside) kogumeid nimetatakse mooduliteks (inglise k. module).

Pythoniga on kaasas hulk standardmooduleid, siin on toodud neist väike valik:

  • math - matemaatikamoodul (näit. astendamine, juurimine, trigonomeetrilised funktsioonid jne) (http://docs.python.org/3.2/library/math.html)
  • random - juhuslikud arvud, juhuslik elementide järjekord (http://docs.python.org/3.2/library/random.html)
  • datetime - kuupäeva ja kellaaja moodul (http://docs.python.org/3.2/library/datetime.html)
  • time - ajaga seotud operatsioonid (näit. paus) (http://docs.python.org/3.2/library/time.html)
  • os - operatsioonisüsteemiga seotud funktsioonid (näit. failide loetelu kaustas, failioperatsioonid jne) (http://docs.python.org/3.2/library/os.html)
  • string - sõnemoodul (sõnede vormindamine jne) (http://docs.python.org/3.2/library/string.html)
  • re - regulaaravaldiste moodul (mustri järgi sõnede otsimine jms) (http://docs.python.org/3.2/library/re.html)

Mooduli importimine toimub käsuga import. Enamasti tehakse programmis kasutatavate moodulite importimine ära programmi alguses kas iga mooduli importimine eraldi real või mitu moodulit ühel real, eraldajaks koma.

import math
import math, random

Moodulis olevate meetodite kasutamine toimub järgmiselt:

print(math.sqrt(36)) # Väljastatakse ruutjuur 36-st
# Muutuja "juhuarv" väärtuseks saab juhuslik täisarv vahemikus 1 kuni 10 (sh 1 ja 10)
juhuarv = random.randint(1, 10)

Moodulis võib esineda ka konstante:

print(math.pi) # Väljastatakse PI väärtus

Mooduleid saab importida ka teisiti:

from math import *

Sel juhul kasutatakse programmi sees moodulis olevaid meetodeid ja konstante ilma mooduli nimeta:

print(sqrt(36))
print(pi)

Mõlemad variandid töötavad ning tundub, et teine variant on lihtsam: programmi sees ei pea uuesti kordama mooduli nime. Kuid ettevaatust: kui impordite mitu moodulit, milles on ühesuguse nimega meetodid (näiteks mitmes moodulis on meetod sqrt()), ei oska programm neid eristada!

Moodulite loomine

Mooduleid saame ka ise luua. Igasugust funktsioonikirjeldustega Pythoni programmi saame käsitleda moodulina. Piisab, kui salvestame moodulina kasutatava faili oma uue programmiga samasse kausta, impordime selle, kasutades moodulina kasutatava faili nime (ilma laiendita) ning seejärel kasutame moodulis olevaid funktsioone. Näiteks:

Fail "tervita.py":

def trykiTervitus(nimi):
    print("Tere, " + nimi)

Fail "test.py":

import tervita
tervita.trykiTervitus("Siim")
tervita.trykiTervitus("Triin")

Muidugi on moodul sellisel kujul mõttetu, kuid me võime moodulisse kirjutada väga keerulisi funktsioone ning neid teistega jagada ja hiljem erinevates programmides kasutada.

Kui programmi töökaustas on imporditava mooduliga samanimeline py-laiendiga fail, imporditakse hoopis see! Näiteks püüdes faili random.py olemasolul samas kaustas importida moodulit moodulit "random", imporditakse hoopis programm random.py. Kuna aga selles moodulis vajalikke funktsioone pole, antakse veateade (näiteks "'module' object has no attribute..." vms).

Samamoodi leiame internetist hulgaliselt teiste tehtud mooduleid, neist üht (Pygame) kasutame tulevikus graafiliste kasutajaliideste loomisel.


Üldiselt

  • Ühe või mitme mooduli importimine
import <mooduli_nimi>
import <mooduli_nimi_1>, <mooduli_nimi_2>
  • Mooduli meetodi (moodulis oleva funktsiooni) kasutamine
<mooduli_nimi>.<meetodi_nimi>()
<mooduli_nimi>.<meetodi_nimi>(<argument>)
<mooduli_nimi>.<meetodi_nimi>(<argument_1>, <argument_2>)
  • Moodulis oleva konstandi väärtuse kasutamine
<mooduli_nimi>.<konstandi_nimi>

Lisamaterjalid

  • https://docs.python.org/3/tutorial/modules.html
  • http://docs.python.org/3.2/library/
  • http://docs.python.org/3.2/tutorial/stdlib.html

Creative Commons litsentsiga Autorile viitamine + Mitteäriline eesmärk 3.0 Eesti (CC BY-NC 3.0 EE) - https://creativecommons.org/licenses/by-nc/3.0/ee/

  • 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