Python: import av modular

Python har ein del innebygd funksjonalitet som du kan bruka rett ut av boksen. Dette gjeld feks. print og input-funksjonane. Men veldig ofte treng vi ekstra funksjonalitet, og då må vi gjera ein såkalt import. Det vi importerer går under ulike navn som modular og bibliotek og meir, men enkelt sagt er det ei fil som inneheld nyttig Python-kode. Noken gonger må installera eit bibliotek før import. Det gjeld feks Numpy og Pylab. Meir om det nedanfor.

Eksempel 1: import frå modulen math

Pussig nok har ikkje Python innebygd kvadratrotfunksjonen. Den finn du i math, som også inneheld trigonometriske funksjonar, konstanten pi, mm. Les meir om math. La oss sjå litt på ulike måtar å importera frå math.

1) import math

For å bruka feks kvadratrotfunksjonen, så må du bruka "fornavnet" math. Så "math.sqrt(4)" vil då gi svaret 2.0

2) from math.import pi

Hvis du veit at du bare treng tilgang til talet pi, så kan du gjera det eksplisitt. Då behøver du ikkje bruka "fornavn", men kan bruka variabelen pi direkte. Du kan gjera det same med funksjonen sqrt, og då treng du ikkje bruka "fornavnet".

3) from math import *

Dette er ein masseimport som importerer alt frå math, men uten å bruka "fornavn". Så du kan bruka både konstantane e og pi, såvel som funksjonar som sqrt() uten formavn.

NB: Denne måten å importera på er ikkje anbefalt, sidan du ikkje veit kor ein funksjon kjem frå. Det gjeld både math og alle andre bibliotek.

Eksempel 2: import frå random

Hvis du treng å generera tilfeldige tal, har du bruk for modulen random. Så oppsummert er det to anbefalte måtar å gjera det på. Hvis du treng alle funksjonane, så gjer du import random. Hvis du treng bare ein bestemt, for eksempel randint, kan du skriva slik:

from random import randint.

Eksempel 3:  Omdøping av modular (kortnavn)

Når vi skal bruka funksjonar med lange navn kan det vera hendig å omdøpa dei ved å bruka "as". Så ein import du ofte ser er denne:

import matplotlib.pyplot as plt

Dette er essensielt det same som metode 1), bare at vi lagar eit nytt navn. Då får vi tilgang til pyplot-delen av biblioteket matplotlib under navnet plt. Hvis vi skal tegna ein graf, kan vi då feks. skriva plt.plot(...) og plt.show 

Ein kan tenkja seg at ein slepp litt jobb med skrivinga, evt. også lesbarheten i koden, spesielt når det er lange navn. Likevel finn vi ofte numpy importert slik:                                         

import numpy as np

Antagelig er dette bare ein vane, men det har i alle fall blitt standardmåten å importera numpy.

Meir om Numpy og Pygame

Numpy er eit kraftig bibliotek for vitenskapelig programmering. Her får du feks- tilgang til såkalte arrays, som liknar på lister, men som egentlig er vektorar eller matriser. For å kunna importera numpy, må du først installera det. Les korleis.

Pygame er eit bibliotek for å laga animasjonar og spill med grafikk. Dette må også installerast første gong. Les korleis.

Tilfellet pylab

Av og til ser vi at folk importerer pylab. Dette er heller ikkje anbefalt. Dokumentasjonen for Matplotlib seier det slik:

"pylab is a convenience module that bulk imports matplotlib.pyplot (for plotting) and numpy (for mathematics and working with arrays) in a single namespace. pylab is deprecated and its use is strongly discouraged because of namespace pollution. Use pyplot instead."

Det dette betyr, er at det kan vera like funksjons- eller variabelnavn i pyplot og numpy, slik at du ikkje kan vita kva du bruker. Sannsynligvis gjer dei ikkje ting på akkurat same måten, og det kan endra virkemåten til programmet ditt. Derfor er pylab ikkje anbefalt, og av same grunn som ein heller ikkje anbefaler from <modul> import * . Det er ikkje sikkert at du vil få problemer, men det er greit å ha gode programmeringsvanar.

Andre bibliotek

Det fins massevis av bibliotek som du kan importera. Eg ser ofte feks. referanser til SciPy og Pandas, men har ikkje brukt dei sjøl.

Refs

6. Modules (Python dokumentasjon)