Osa 7

Moduulit

Python-kieli sisältää itsessään joukon valmiita funktioita, esimerkiksi merkkijonojen ja listojen pituuden kertovan funktion len, alkioiden summan laskevan funktion sum. Python-kielen standardikirjasto on kokoelma monenlaisia hyödyllisiä funktioita ja olioita joiden avulla kielen "ilmaisuvoimaa" on helppo laajentaa. Olemme jo käyttäneet muutamassa tehtävässä standardikirjastosta joitain matemaattisia operaatioita tarjoavia funktioita esim. neliöjuurten laskemisessa.

Standardikirjasto muodostuu moduuleista, joihin on ryhmitelty eri aiheisiin liittyviä funktioita ja luokkia. Tutustumme tässä osassa joihinkin hyödyllisiin moduuleihin ja opimme tekemään myös moduulin itse.

Moduulin käyttäminen

Komento import ottaa käyttöön halutun moduulin. Tarkastellaan esimerkkinä moduulia math, jossa on matemaattisia funktioita. Seuraava koodi laskee luvun neliöjuuren funktiolla sqrt ja logaritmin funktiolla log

import math

# luvun 5 neliöjuuri
print(math.sqrt(5))
# luvun 8 logaritmi (2-kantainen)
print(math.log(8, 2))
Esimerkkitulostus

2.23606797749979 3.0

Koska funktiot ovat moduulissa math, niihin viitataan koodissa nimillä math.sqrt ja math.log.

Moduulin osien valinta

Toinen tapa käyttää moduulia on valita sieltä mukaan from-komennolla tiettyjä osia, joita haluamme käyttää. Esimerkiksi seuraava koodi ottaa käyttöön funktiot sqrt ja log moduulista math:

from math import sqrt, log

print(sqrt(5))
print(log(5,2))

Tämän tavan etuna on, että voimme käyttää funktioita suoraan ilman math-etuliitettä.

Voimme myös ottaa suoraan käytettäväksi kaiken moduulin sisällön tähden avulla:

from math import *

print(sqrt(5))
print(log(5,2))

Tämä tapa voi olla kätevä testailussa ja pienissä ohjelmissa, mutta siinä on omat ongelmansa, kuten näemme myöhemmin.

Loading

Moduulin sisältö

Pythonin dokumentaatio kertoo jokaisesta standardikirjaston moduulista, mitä moduuli sisältää ja kuinka sitä käytetään. Esimerkiksi moduulin math dokumentaatio on tässä:

Voimme myös tutkia funktion dir avulla moduulin sisältöä:

import math

print(dir(math))

Funktio antaa listan nimistä, jotka moduuli määrittelee:

Esimerkkitulostus

['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'hypot', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']

Loading
Loading
:
Loading...
:
Loading...

Kirjaudu sisään nähdäksesi tehtävän.

Seuraava osa: