Funktsioonid
Suurte programmide, nagu mängud tavaliselt on, kirjutamisel läheb kood suhteliselt kiiresti väga pikaks ja keeruliseks nii oma konstruktsioonide ja valemite poolest kui loetavuse enda mõttes. Sa oled omal nahal seda juba ussimängu koodi ümber kirjutades või oma seiklusmängu luues tunda saanud. Kood läheb aina pikemaks ja segasemaks.
Kõige parem oleks kood organiseerida väiksemateks juppideks, kus igast jupist on programmeerijal hea ülevaade, ta teab mida see jupp teeb ja milline tulemus selle jupi töötamisega kaasneb. Pealegi on ühte juppi kergem programmeerida kui kogu programmi korraga kirjutada.
Mis siis teha?
Võtame kasutusele funktsiooni mõiste. Funktsioon ei olegi mitte midagi muud kui üks jupp koodi suurest programmist, millele on antud oma nimi ja mis oskab tagastada (välja anda) oma töö tulemust. Funktsioone nimetatakse sageli ka alamprogrammideks, sest nad käituvad nagu väikesed iseseisvad programmikesed. Funktsioon on käskude kogumik, mis teeb alati midagi. Funktsioone võib vaadata ka kui ehitusmaterjali maja ehitamisel. Iga materjal on oma otstarbega, oma spetsiifiliste omadustega, oma kujuga jne. Paljudest erinevatest ja ka ühesugustest materjali tükkidest saab oskuslikul kombineerimisel ehitada mistahes ehitisi. Sama lugu on funktsioonidega, neist saab oskuslikul kombineerimisel kokku panna mistahes programmi.
Funktsiooni loomine
Funktsioone luuakse ehk defineeritakse võtmesõna def abil. Def võtmesõna järele kirjutatakse funktsiooni nimi (nime valimisel tuleb lähtuda samadest reeglitest nagu muutujate nimede valimise juures) ning kõige lõpuks sulud. Sulgude sisse võib, aga ei pea midagi kirjutama, oleneb funktsiooni töö eripärast, kuid sellest veidi aja pärast. Praegu aga võta lahti Idle tekstiredaktor ja katseta funktsiooni defineerimist.


Defineerisin funktsiooni ahv. See funktsioon ei tee mitte midagi muud, kui prindib neli rida teksti. Funktsiooni tööle panemiseks tuleb funktsiooni nimepidi kutsuda, seda me teeme antud näite viimasel real, kusjuures üliolulised on just sulud.
Vaata ka sissejuhatavat videot, mis toob väikese näite funktsiooni defineerimisest.
Kuid miks on veel kasulik eraldada grupp käske suurest koodist ja anda sellele käskude grupile ühine nimi? Kas tõesti ainult loetavuse parendamiseks?