Zython (Vir:1) je tolmač, prvi razvojni jezik (Vir:3 in Vir:4) po uporabnosti. Je enostaven, pokriva vse programerske vsebine in je orodje številnih uporabnikov in razvijalcev. Preden začnemo raziskovati izbrane vsebine, si moramo pogledati osnove. Na spletu obstaja veliko posnetih izobraževalnih tečajev. Vabim vas , da si katerega tudi ogledate (Vir:5).
izhod.py
Na levi strani imamo program in če na desni strani pritisnemo gumb »Poženi« se program izvede (slika 1). Levo zgoraj imamo poleg gumba »Začetek« izbirnik programov. Na levi strani lahko izbrani program tudi popravimo. Z uporabo tipke »Odpri« se lahko vedno vrnemo na originalno, delujočo vajo. Delujoče vaje razlaga učitelj, učenec požene vajo in vidi rezultat. Znotraj pedagoške ure lahko na predlog učitelja in kasneje na iniciativo učenca vnašamo spremembe. Takoj si lahko pogledamo posledice in se tako veliko in hitreje naučimo.
Ta vsebina je samo za naročnike
Vsak si lahko pogleda vajo v živo (Vir:1). Vedite samo, da je to en strežnik in upoštevajte možnost večkratnega dostopa s strani več uporabnikov. V učilnici nove mehatronike ima vsak učenec svoje delovno mesto z zaslonom, tipkovnico in miško.
Morda bi pri programu izpis.py opozoril na tipe spremenljivk. Vaja pokaže, kako se izpiše vrednost vsakega tipa. Osnovni tipi spremenljivk v programskem jeziku python so bool, celoštevilčno, plavajoča vejica in niz. Za vajo si poglejte izpis za vsak tip in poizkusite spremeniti vrednost in način izpisa. Tu pridemo do pogostega zapleta pri učenju, da se v preveliki vnemi tako zatipkamo, da nam program začne javljati napake in ne najdemo več prave poti. V takem primeru ponovno naložimo izhod.py tako, da pritisnemo tipko odpri in smo zopet na začetku. Zadevo ponavljamo, dokler ne osvojimo vsebine in nam delajo vsi zamišljeni ali predlagani primeri.
vhod.py
Zraven gumba »Poženi« imamo vnosno vrstico za argumente. Uporabimo knjižnici sys in platform. Argumenti so ločeni s presledkom. Parametrov je lahko poljubno število.
V knjižnici platform imamo veliko metod ki jih rabimo pri resničnih programih. Izdaja pythona je pomembna. Izdaja 2 gre počasi iz uporabe. Danes se uporablja izdaja 3.
Za iskanje primerov, pojasnil ali izkušenj uporabnikov je pomembna uporaba iskalnikov. Naučiti se moramo pravilno poizvedovati. V našem primeru povpraševanje »raspberry python import platform« vrne zadetke, kjer dobimo uporabne podatke. Če nismo zadovoljni z odgovorom, lahko povpraševanje ponovimo z npr. »raspberry pi python platform«. Ugotovitve in zanimive primere takoj preizkusimo. In zopet če se napake preveč namnožijo, se vedno lahko vrnemo na delujoč primer z uporabo gumba »Odpri«.
V nadaljevanju z uporabo če zanke izpišemo vse parametre. Prvi parameter je ime programa, ki smo ga pognali. Dobili smo buf0.py. Tako deluje slovenska izdaja. Ko ste pritisnili gumb »Odpri« se je vhod.py kopiral v buf0.py. Vse spremembe se godijo nad buf0.py. Original tako ostane nedotaknjen.
Ker je slovenska izdaja namenjena izobraževanju, si lahko delujoče primere in na sploh izgradnjo spletne strani (Vir:1) pogledamo v deljenih mapah. Vsako datoteko si lahko pogledamo in jo po potrebi spremenimo. Poglobljeni študij po navodilih učitelja ali enostavno zaradi radovednosti so najboljša metoda učenja.
Če bi želeli slediti spletni strani, si pogledamo index.php. Zopet se te študije začnejo ob asistenci učitelja, učencem pa omogočajo sledenje povezavam in študij metod gradnje spletnih strani. Tu gredo vsebine v različne smeri. Zaporedje vsebin je v pedagogiki ključno. Tu uporabljeno zaporedje je preizkušeno v praksi in ni nujno idealno za študij vsake vsebine. Ravno za take primere imamo predvidene nadgradnje (Vir:6), za posamezne tehnologije. Vir nadgradenj suhel-raspberryip.com, lahko spremenite v katerokoli domeno ali IP številko, na kateri je slovenska izdaja. Tako si lahko napišemo svoje vaje in jih po svojih pedagoških načelih posredujemo učencem. Na posodobitvah se pojavijo nove vaje, zato nam ni potrebno na novo programirati SD kartice ob vsaki posodobitvi slovenske izdaje, posodobimo samo vaje.
podatki.py
Čas je, da si pogledamo vse podatkovne strukture v pythonu. Opisane so v razredih. Strukturam bool, niz, celo in vejica, razširimo še z slovarjem, seznamom in tuplom. Slovar je zaporedje spremenljivk enakih tipov(struktur). Slovarju pravimo tudi tabela ali eno dimenzijsko polje. Slovar je struktura, ki vsakemu elementu doda opis. Tuple je organiziran podobno kakor seznam. Za vsako od treh dodatnih struktur je značilen nabor operacij, ki so dovoljene. Gre za teoretično vse možne strukture. Operacije so že del knjižnic in so preizkušene. Ni se nam potrebno mučiti z lastnimi knjižnicami in nismo tako izpostavljeni napakam.
seznam.py
Nad seznamom lahko izvajamo brisanje poljubnega elementa, dodajanje elementa, urejanje elementov, vstavljanje elementa na poljubnem mestu. Če so elementi številski, lahko izvajamo številske operacije s seznami, lahko tudi preštejemo elemente po kriteriju. Seznami so shranjeni v delovnem pomnilniku in lahko izvajamo nad njimi vse teoretično mogoče operacije.
Pri izvajanju operacij podatkovnih struktur moramo omeniti časovno kompleksnost operacije. Dovoljene in podprte so samo operacije, ki imajo časovno kompleksnost 1 ali največ n.ln(n). Dodajanje elementa ima časovno kompleksnost 1, ker je čas izvajanja vedno 1, ne glede na dolžino seznama. Urejanje seznama ima časovno kompleksnost n.ln(n). Kar pomeni, da se urejanje izvede v času, ki je malenkost večji od n (ln(n) zelo počasi narašča. Operacije nad podatkovnimi strukturami, ki so 1 ali n nam omogočajo lagodno pisanje programov. Pri veliko podatkih se moramo vedno bati časovne bombe. Operacije, ki bi imele časovno kompleksnost npr. n*n (n kvadrat). Bi lahko povsem nemoteno delovale na 1000 članih seznama, na milijon članih bi pa popolnoma zablokirale računalnik. Če že programiramo, se moramo tega vedno zavedati. Python (pa drugi jeziki tudi), to dilemo rešujejo tako, da operacije, ki bi povzročale časovno bombo, enostavno niso v naboru knjižnice. Kot bomo videli, je ravno časovna kompleksnost operacij ključna pri izboru podatkovnih struktur. Velik izbor možnih operacij pomeni v splošnem počasnejše delovanje v primerjavi s podatkovnimi strukturami, kjer imamo teh operacij manj.
Pogledali si bomo polja, metode, torke, predmete in dedovanja. Do takrat poglejte si še kak primer, poizkusite še delo v terminalu, morda si pogledate še kakšen IDE za python. Delo v spletnem brskalniku je enostavno in ni potrebe po namestitvah. Vendar je pretirana lahkota brez truda lahko varljiva. Ko študirate python imejte vedno v mislih, da je to tolmač, da je dober za produkcijo, vendar so na koncu projekti mešanica tehnologij, ki jih na slovenski izdaji poskušamo zaobjet. Šele z vsemi tehnologijami, veliko delujočimi vajami in šolskimi projekti resničnega pythona, pokrivamo programski del projekta. Mehatronika je še izdelava strojnega dela in pogonskega sklopa. Pogonski sklopi vodijo v robotske modele in tam se srečamo z avtonomnimi sistemi umetne inteligence, kar danes pomeni nevronske mreže. In predvsem snovi je veliko, veliko preveč za ene možgane. Naše raziskovanje se tako nikoli ne ustavi.
Viri:
1. http://si.raspberryip.com/python/osnove/
2. https://www.python.org/
3. https://www.youtube.com/watch?v=mUxS-35qO44
4. https://www.youtube.com/watch?v=Og847HVwRSI
5. https://www.youtube.com/watch?v=rfscVS0vtbw
6. http://si.raspberryip.com/nadgradi.php
Avtor: Boštjan Šuhel
email: bostjan.suhel@gmail.com