sobota, 01. december 2012

Ponovitev snovi

Pozdravljeni!

Kako smo začeli?

Prva stvar, ki smo jo spoznali, je kako računalniku dopovedati, da nam nekaj izpiše na zaslon. Ukaz, ki smo ga uporabili je ''print()''.
Če smo ta ukaz vpisali v terminal je to zgledalo približno tako:
>>> print('Pozdravljeni udeleženci tečaja CoderDojo!')
Pozdravljeni udeleženci tečaja CoderDojo!
 
Prav tako smo izpisovali številke:
>>> print(2012)
2012
 
>>> print(2012+1)
2013
 
>>> print(2012/2013)
0.9995032290114257
 
Spomnimo se lahko tudi kombinacij števil in besedila:
>>> print('CoderDojo v šolskem letu', 2012, '/', 2013, 'se šele dobro začenja.')
CoderDojo v šolskem letu 2012 / 2013 se šele dobro začenja.
 
Spoznali smo se s spremenljivkami ter ugotovili, da lahko v njih hranimo tako besedilo (po angleško string) kot številke (po angleško integer):
>>> pozdrav = 'Lep pozdrav!'
>>> print(pozdrav)
Lep pozdrav!
 
>>> najmlajsi = 8
>>> najstarejsi = 14
>>> print(pozdrav, 'Najmlajši udeleženec tečaja je bil star', najmlajsi, 'let, najstarejši pa', najstarejsi, 'let.')
Lep pozdrav! Najmlajši udeleženec tečaja je bil star 8 let, najstarejši pa 14 let.

Kakšno vrednost spremenljivka hrani lahko preverimo z ukazom 'type()':
>>> type(pozdrav)
<class 'str'>
>>> type(najmlajsi)
<class 'int'>
 
>>> stevilo_banan = 4
>>> stevilo_jabolk = 5
>>> stevilo_mandarin = 3
>>> stevilo_sadja = stevilo_banan + stevilo_jabolk + stevilo_mandarin
>>> print(stevilo_sadja)
12
 
Pokazali smo tudi, da lahko v eni spremenljivki hranimo več vrednosti, to obliko imenujemo 'list'.
>>> kosara = ['Pomaranca','Jabolko','Zelje']
>>> torba = ['Puščica', 'Zvezek', 'Učbenik', 'Delavni zvezek', 'Mapa']
>>> avto = ['Sin','Hčerka','Mama']
>>> print(avto)
['Sin', 'Hčerka', 'Mama']
 
V take list-e lahko vrednosti tudi dodajamo
>>> avto.append('Ata')
>>> print(avto)
['Sin', 'Hčerka', 'Mama', 'Ata']
 
Pomembno je tudi kako kličemo posamezne elemente v listu:
>>> print(avto[0], avto[1], avto[2], avto[3])
Sin Hčerka Mama Ata
 
Podobno lastnost klicanja posamičnih elementov smo pokazali tudi pri besedilu:
>>> zmeda = 'Onekjesopresledki?'
>>> print(zmeda[0], zmeda[1:3], zmeda[3:6], zmeda[6:8], zmeda[8:])
O ne kje so presledki?

Temu postopku rečemo 'slicing' kar v angleščini pomeni rezati in to je tudi vse kar počnemo, izrezujemo dele besedila, ki se nahajajo v spremenljivki.
 
 

TURTLE!

Za uporabo modula turtle moramo le tega najprej poklicati, to storimo z ukazom 'import' ter imenom modula, ki ga kličemo, v našem primeru je to 'turtle'.
 
>>> import turtle
 
Ko je modul naložen ustvarimo želvo ter jo poimenujemo s spremenljivko, ta spremenljivka potem postane spremenljivka tipa turtle.
 
>>> janez = turtle.Turtle()
>>> type(janez)
<class 'turtle.Turtle'>
 
Ko ustvarimo želvo z imenom janez se nam odpre okno v katerem se želva nahaja – pojavi se na sredini.
S prejšnjim ukazom smo določili, da je spremenljivka janez postala Turtle, zaradi tega lahko ta spremenljivka kliče vse ukaze, ki se nanašajo na Turtle:
Za premikanje želve uporabimo sledeče ukaze:

Naprej:
>>> janez.forward(ŠTEVILO PIKSLOV)
Ali
>>> janez.fd(ŠTEVILO PIKSLOV)
 
Obrni levo:
>>> janez.left(STOPINJE)
Ali
>>> janez.lt(STOPINJE)
 
Obrni deso:
>>> janez.right(STOPINJE)
Ali
>>> janez.rt(STOPINJE)
 
Pojdi na koordinato (x,y) (če so koordinate (0,0) je želva na sredini)
>>> janez.goto(x,y)
 
Dvigni svinčnik (želva ne pušča sledi)
>>> janez.penup()
Ali
>>> janez.pu()
 
Spusti svinčnik (želva pušča sled)
>>> janez.pendown()
Ali
>>> janez.pd()

Z uporabo teh ukazov smo že sposobni narisati preproste like kot so kvadrat, pravokotnik, itd.
Vendar pa smo hitro ugotovili, da lahko ukaze, ki se ponavljajo skrašjamo s pomočjo zanke.
Uporabljali smo 'for' in 'while' zanko:

Ideja 'for' zanke v pythonu zgleda tako:
>>> torta = ['moka', 'mleko', 'jajce', 'sladkor', 'borovnice', 'smetana']
>>> for sestavina in torta:
>>>    print(sestavina)
moka
mleko
jajce
sladkor
borovnice
smetana

Za podobno nalogo lahko uporabimo tudi 'while' zanko:
>>> avto = ['ata', 'mama', 'sin', 'hcerka']
>>> while len(avto) > 0:
>>>    print('Iz avta izstopi', avto.pop(), '.')
Iz avta izstopi hcerka.
Iz avta izstopi sin.
Iz avta izstopi mama.
Iz avta izstopi ata.
 
V tem primeru nam ukaz len(avto) pove koliko elementov je v spremelnjivki avto. Na začetku je ta vrednost 4, vendar se v vsakem ciklu zanke število zmanjša. Za to poskrbi ukaz pop(), ki iz naše spremenljivke avto izbriše in izpiše zadnji element.
To je precej lažje razumeti na primeru:
>>> nabiralnik = ['paket','pismo','razglednica']
>>> len(nabiralnik)
3
>>> nabiralnik.pop()
razglednica
>>> print(nabiralnik)
['paket','pismo']
>>> len(nabiralnik)
2
 
Naučili smo se definirati funkcije, ki kvadrat oz. Katerikoli drug lik izrišejo za nas, primer:
 
def pravokotnik(x_koordinata, y_koordinata, dolzina_stranice_1, dolzina_stranice_2):
      risar = turtle.Turtle()
risar.pu()
risar.goto(x_koordinata, y_koordinata)
risar.pd()
while stranica < 4:
risar.fd(dolzina_stranice_1)
risar.lt(90)
risar.fd(dolzina_stranice_2)
risar.lt(90)
stranica = stranica + 2
Ko bo ti funkcijo uporabili v programu bi to zgledalo približno tako:
>>> pravokotnik(0, 0, 50, 100)
 
Na zasloni bi se nam tako izrisal pravokotnik s širino 50 pikslov in višino 100 pikslov.
Ker pa smo koordinati x in y dali na 0, bi želva začela risati pravokotnik na sredini zaslona (turtle modul za točko (0,0) vzame središče risalnega polja).


Želim vam uspešno igranje. V primeru vprašanj, želja, idej pa kar pogumno kontaktirajte mene ali Blaža:
blaz@coderdojo.si
jernej@coderdojo.si