Harjoitus 20. Python ja kilpikonnagrafiikka 4

Range

Jos for silmukassa käskyjä toistetaan vain muutaman kerran on helppoa listata kerrat hakasulkujen sisään. Jos toistoja on vaikkapa sata kävisi listan kirjoitaminen jo työstä. Pythonissa tähän on onneksi tarjolla myös oikotie: funktio nimeltä range. Kirjoita oheisen esimerkin mukainen koodi ja katso miten se toimii. Kokeile sitten muuttaa suluissa range funktion perässä olevaa lukua ja katso miten se vaikuttaa.



Range -funktiolla voidaan luoda listoja halutuista luvuista. Range sisältää kolme parametria(aloitusluku, lopetusluku ja siirtymän suuruus) eli (start, stop, step)
esim.
print(range(0,10,2))
0,2,4,6,8
saadaan lista jossa aloitusluku on 0, lopetusluku 10 ja edetään kahden hyppäyksillä.

Jos annetaan vain yksi parametri alkaa lista aina nollasta
esim:
print(range(4))
0,1,2,3

Huomaa siis että lopetuslukua ei lasketa mukaan listaan. Aloitusluku sen sijaan otetaan mukaan. Ohjelmoinnissa onkin tyypillistä että laskeminen alkaa nollasta. Yleistäen voidaan todeta että range(N) tuottaa N merkkiä pitkän listan jonka viimeinen numero on N-1.

Range toimii myös negatiiviseen suuntaan
esim.
print(range(10,0,-1))
tulostaa 10,9,8,7,6,5,4,3,2,1

 

Harjoitusikkuna

​Tehtäviä:
1) Tulosta range funktiota hyödyntäen listat
a) jossa numerot 1-10
b) jossa numerot 100-0
c) jossa kahdeksan kertotaulun tulokset

2) Kirjoita alla oleva ohjelma.


Minkä kuvion sait aikaiseksi?
Miten saisit tehtyä kuviosta kaksi kertaa suuremman?
Miten voisit täyttää kuvion sinisellä värillä?

3) Kirjoita alla oleva ohjelma.

Ennen kuin käynnistät ohjelman yritä tulkita koodia ja mieti mitä ohjelmassa tulee tapahtumaan. Millä väreillä kuvio syntyy? Millaisen lukusarjan range-funktio luo? Miten lukusarjaa käytetään ohjelmassa? Mitä ohjelmassa tekee komento print(list(range(5,160,2)))

4) Hyödynnä range funktiota for silmukassa äskeisten esimerkkien tapaan ja luo jokin hieno kuvio.

Peda.net käyttää vain välttämättömiä evästeitä istunnon ylläpitämiseen ja anonyymiin tekniseen tilastointiin. Peda.net ei koskaan käytä evästeitä markkinointiin tai kerää yksilöityjä tilastoja. Lisää tietoa evästeistä