Python Ohjelmointi

Importit ja Satunnaisluvut

Helppo
20 min

Mitä ovat importit?

Ohjelmoidessa kannattaa hyödyntää jo olemassa olevaa koodia mahdollisimman paljon. Tietysti koodin täytyy olla laadukasta ja turvallista, on siis syytä olla tarkkana että kenen tekemää koodia omalla koneellaan/omassa ohjelmassaan ajaa.

Pythonissa on kuitenkin onneksi "standard library", eli nk. standardikirjasto erilaisia moduuleja moneen eri tarpeeseen. Moduulien toiminnallisuus ei ole suoraan käytettävissä koodissasi, vaan ne täytyy erikseen tuoda (import) ohjelmaasi käytettäväksi. Ja tämä tehdään import komennolla.

Esimerkkitapaus: Satunnaisluvut

Otetaan esimerkki, satunnaisluvut. Sanotaan, että me halutaan näyttää satunnainen numero nollan ja sadan väliltä. Voisimme kenties rakentaa oman funktion joka tekisi jotain tällaista:

  • Otetaan tietokoneen aika nanosekuntteina.
  • Otetaan tietokoneen jäljellä oleva levytila tavuina.
  • Otetaan tietokoneen sarjanumero.
  • Yhdistetään nämä kaikki, lisätään tasahyppy, jaetaan kukalla ja kerrotaan jakojäännös kivellä.

Satunnaisluvun generointi on kuitenkin niin yleinen tarve, että siihen löytyy moduuli Pythonin standardikirjastosta: random. Voimme tuoda moduulin ohjelmaamme seuraavasti:

import random

Jos haluamme nähdä mitä moduuli tarjoaa, voimme tehdä tämän dir -komennolla.

import random
print(dir(random))
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_ONE', '_Sequence', '_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_floor', '_index', '_inst', '_isfinite', '_log', '_os', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randbytes', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']

On kuitenkin helpompaa vaan katsoa Pythonin dokumentaatiota: random.

Jos haluamme satunnaisen numeron 1 ja 10 välistä: voimme siis kutsua randint funktiota. Ja koska funktio on random-moduulista, sitä kutsutaan näin:

random.randint(1, 10)

Syntaksi on siis <MODUULI><PISTE><FUNKTIO>(<PARAMETRIT>). Eli esimerkiksi:

print(random.randint(1, 10))
7

print(random.randint(1, 10))
2

Harjoitus

Esimerkki miten ohjelman pitäisi toimia:

python3 app.py

Nopan silmäluku: 3

Tehtävät

Tehtävä 1

Kirjoita ohjelma joka laskee satunnaisluvun 1-6 väliltä ja tulostaa sen seuraavasti: "Nopan silmäluku: LUKU"

hakatemia pro

Valmis ryhtymään eettiseksi hakkeriksi?
Aloita jo tänään.

Hakatemian jäsenenä saat rajoittamattoman pääsyn Hakatemian moduuleihin, harjoituksiin ja työkaluihin, sekä pääset discord-kanavalle jossa voit pyytää apua sekä ohjaajilta että muilta Hakatemian jäseniltä.