Arvutiteaduse instituut
  1. Esileht
  2. Python koolis
EN
Logi sisse

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/

  • 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