nedelja, 09. december 2012

Decembrski CoderDojo

Pa smo preživeli zasneženo soboto, udeležba je bila vremenu primerna, ampak nekateri se niso dali!
Tokrat smo s starejšo skupino delali z grafičnimi vmesniki, naredili smo kalkulator in začeli se programirati še tri v vrsto (za kar je žal zmanjkalo časa) mlajša pa je izdelala spletno stran.
Spodaj pa si lahko še ogledate slike iz dogodka:








Ne pozabite, naslednjič (12.1.2013) se bomo poigrali z Lego Mindstorms!

Za kontakt, pohvale / pritožbe lahko pišete na email naslov:

blaz@coderdojo.si
jernej@coderdojo.si



nedelja, 02. december 2012

Obvestilo za decembrski CoderDojo

Samo še dober teden nas loči od naslednjega CoderDojo dogodka!

Tokrat bomo z mlajšo skupino izdelali manjšo spletno stran, na tematiko, ki si jo bodo sami izbrali.
Priporočamo, da s seboj prinesete kakšno sliko, videoposnetek ali zvok stvari, ki bi jo želeli naložiti na stran, najsibodi to hišni ljubljenček, bližnja oseba, risani junak; skratka nekaj, kar vam je pri srcu.
Po izdelavi strani pa se bomo še malce poigrali s spletom.

S starejšimi pa bomo nadaljevali s Pythonom, tokrat se bomo lotili nečesa nekoliko težjega.
S seboj ne potrebujete ničesar posebnega, samo laptop in obilo dobre volje.

Za morebitna vprašanja lahko pod objavo pustite komentar, ali pišete na mail.

blaz@coderdojo.si
jernej@coderdojo.si

Se vidimo!

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