Chytanie hada pre deti - Výuka programovania s Pythonom

obálka knihy

Preklad knihy Snake Wrangling for Kids, Learning to Program with Python od Jason R. Briggsa.

Verzia 0.7.7, Copyright 2007.

Toto dielo spadá pod licenciu Creative Commons (by-nc-sa).

 

 

 

Predslov

Poznámka pre rodičov ...


Vážení rodičia a učitelia,

  k tomu, aby vaše dieťa mohlo začať s programovaním, bude potrebné, aby ste do počítača nainštalovali Python (verzie 2.4 alebo vyššej). Je to pomerne jednoduchá úloha, ale existuje niekoľko zádrheľov v závislosti na tom, aký druh operačného systému vlastníte. Ak ste si práve kúpili nový počítač a nemáte potuchy, čo s ním máte robiť, a po prečítaní predchádzajúcej vety vám behajú zimomriavky po chrbte, budete potrebovať niekoho, kto vám s tým pomôže. V závislosti od stavu vášho počítača a rýchlosti vášho internetového pripojenia by to mohlo trvať od 15 minút po niekoľko hodín.

Najskôr je potrebné stiahnuť a nainštalovať najnovšiu verziu Python určenú pre váš operačný systém. Pre operačný systém Windows si ho môžete stiahnuť na stránke 

http://www.python.org/download/

V operačnom systéme Linux je to rôzne pri každej distribúcií. Určite však nájdete návod pomocou vyhľadávača zadaním mena vašej distribúcie a slova Python napríklad zadaním výrazu "how to install python in ubuntu". Takýmto spôsobom v skutočnosti nainštalujeme čokoľvek.

Po dokončení inštalácie. . .

. . . Možno si budete musieť sadnúť vedľa vášho dieťaťa a niekoľko prvých kapitol prejsť s ním, ale dúfajme, že po pár príkladoch, ktoré by ste mali zvládnuť tak, že si zviažete ruky za chrbtom a nebudete dieťaťu siahať na klávesnicu, by to už malo zvládnuť samé. Pred začatím by malo vedieť aspoň trochu robiť s niekoľkými textovými editormi (nie textovým procesorom, ako je Microsoft Word, ale starým-nemoderným textovým editorom). Malo by v ňom vedieť otvoriť súbor, vytvoriť nový súbor a uložiť to, čo do neho napíše. Okrem tohto ho táto kniha všetko potrebné naučí.

Ďakujem za váš čas.

  S pozdravom

KNIHA

Kapitola 1

Všetky hady nehryzú

Gratulujem ti, že si dostal túto knihu k narodeninám alebo pod stromček. Teta Margit z Veľkého Medera ti pôvodne chcela doniesť dve rôzne ponožky rôznych veľkostí a farieb (a ty by si ich aj tak nenosil, aj keby si do nich dorástol). Našťastie počula niekoho hovoriť o tejto vytlačiteľnej knihe, kto sa ju minulé Vianoce snažil naučiť robiť na počítači (vzdal to, keď začali hovoriť o myši), tak ho poprosila, či by jej nevytlačil jeden výtlačok pre teba. Buď rád, že si nedostal staré plesnivé ponožky.

Dúfam, že nie si príliš sklamaný, že som iba na recyklovanom papieri a že ťa neodradí môj nie celkom pekný názov (no dobre, vôbec nie je pekný), hovoriaci o “Výuke. . .”. Počkaj ale chvíľku a porozmýšľaj, ako sa teraz asi cítim. Keby som bola čarodejníkom z tých knižiek, ktoré máš na poličke v spálni, už by som mala asi pričarované zuby... alebo možno oči. Možno by som mala v sebe pohyblivé obrázky alebo by som vydávala plačlivé zvuky pri otváraní mojich stránok. Miesto toho som vytlačená na listoch formátu A4 so somárskymi ušami a ak som mala šťastie, som zviazaná v zložke alebo hrebeňovou väzbou. Ja viem, nemám oči.

Dala by som čokoľvek za sadu pekných ostrých zubov...

Nie je to však až tak zlé, ako to vyzerá. Aj keď nemôžem hovoriť... alebo dať ti po prstoch, ak ma nebudeš čítať... Môžem ti povedať niečo o tom, ako fungujú počítače. Nie o súčiastkách s drôtmi a čipmi a zariadeniach, ktorých sa nesmieš chytať, lebo by ťa pokopal elektrický prúd (to nie!!)— ale o veciach skrytých za drôtmi, čipmi a bitmi, ktoré robia z počítača užitočnú vec.

elektrinaJe to trochu podobné myšlienkam, ktoré lietajú niekde vo vnútri tvojej hlavy. Keby sme nemali myšlienky, sedeli by sme na podlahe svojej izby, pozerali do prázdna a slintali si na tričko. Bez programov by boli počítače dobré možno len na podopieranie dverí a ani potom by neboli veľmi užitočné, pretože by sme o ne v noci zakopávali. Nie je nič horšie ako palec narazený v tme.

Som len kniha a napriek tomu to viem.

U vás doma môže niekde posedávať Playstation, Xbox alebo Wii—ten sa nezaobíde bez programov (Hier). Váš DVD prehrávač, chladnička a aj auto majú v sebe počítačové programy, aby nám dokázali lepšie pomôcť. DVD prehrávač má program, ktorý nám umožňuje nastaviť, čo chceme z DVD prehrať; chladnička môže mať jednoduchý program, ktorý dáva pozor, aby nežrala veľa elektriny, ale popritom udržala naše jedlo v chlade; vaše auto môže mať počítačový program, ktorý upozorňuje vodiča, že ide do niečoho naraziť.

Ten, kto vie napísať počítačové programy, môže urobiť rôzne užitočné veci. Vytvoriť vlastné hry. Upraviť webové stránky tak, aby boli farebnejšie a zaujímavejšie. Zostaviť si program, ktorý nám pomôže s domácou úlohou.

Dosť bolo rečí, poďme na niečo zaujímavejšie.

Niekoľko slov o jazyku

Rovnako ako ľudia, niektoré veľryby, delfíny, a možno aj rodičia (aj keď to je diskutabilné), aj počítače majú vlastný jazyk. Vlastne rovnako ako ľudia dokonca viacero jazykov. Existuje toľko jazykov, že pokryjú takmer všetky písmená abecedy. A, B, C, D a E nie sú len písmená, sú to tiež programovacie jazyky (čo dokazuje, že dospelí nemajú fantáziu, a mali by si pred pomenovaním jazyka prečítať slovník alebo synonymický slovník).

Existuje tiež mnoho programovacích jazykov, ktoré sa volajú podľa ľudí, alebo sú skratkami slovných spojení (začiatočné písmená niekoľkých slov) a niektoré sa dokonca volajú po televíznych reláciách. Oh, a skoro som zabudla na pluská a krížiky (+, #) za niektorými písmenami, ktoré som pred chvíľou vymenovala — aj takýchto programovacích jazykov je niekoľko. Aby bola situácia ešte komplikovanejšia, niektoré jazyky sú takmer rovnaké a líšia sa len mierne, podobne ako nárečia u ľudí.

Čo som ti hovorila? Nemajú predstavivosť!

Našťastie mnoho týchto jazykov upadlo do zabudnutia alebo bolo úplne zrušených; no zoznam rôznych spôsobov, akým sa môžeme ‘rozprávať’ s počítačom je stále hrozivo veľký. Ja ti budem hovoriť iba o jednom z nich — inak by sme nevedeli ani začať.

Bude to produktívnejšie ako sedieť v spálni a slintať si na tričko. . .

Príkazy nejedovatého škrtiaceho hada...

. . .alebo skrátene Pythona.

Okrem toho, že Python je had, je to tiež názov programovacieho jazyka. Avšak nebol pomenovaný podľa beznohého plaza, ale podľa postavy z televízneho seriálu. Monty Python bola anglická komédia, ktorá bola populárna v sedemdesiatych rokoch (a je populárna aj v súčasnosti), ktorá sa od určitého veku stane zábavná. Ktokoľvek kto má menej rokov ako. . . povedzme 12. . . sa bude čudovať, čo je na tom hadovi smiešne.

V Pythone je veľa vecí (v programovacom jazyku, nie v hadovi ani televíznom seriále), ktoré sú veľmi užitočné, ak sa učíš programovať. Teraz v tomto momente je najdôležitejšie, že sa dá veľmi rýchlo spustiť a niečo v ňom urobiť.

Teraz je čas overiť si, či si mamina, ocino (alebo niekto, kto má na starosti počítač) prečítali moju úvodnú časť nazvanú  “Poznámka pre rodičov”.

Overíš si to takto:

Ak sa nachádzaš v systéme Windows, v ľavom dolnom rohu obrazovky je tlačidlo Štart. Klikni naň a potom na "Všetky programy" (ktoré majú vedľa seba taký zelený trojuholník) a pozorne prejdi zoznam programov, v ktorom by si mal uvidieť ‘Python 3.0’ (alebo niečo podobné). Na obrázku 1.1 si môžeš pozrieť, ako by malo vyzerať to, čo hľadáš. Klikni na ‘Python (command line)’ a uvidíš niečo podobné ako na obrázku 1.2.

Python v ponuke windows

Obrázok 1.1: Python v ponuke Windows.

Ak tlačidlo Štart nevidíš, v takom prípade asi máte na počítači Linux. Spýtaj sa maminy alebo ocina, ktorý terminál by si mal použiť (malo by sa to volať ‘Terminál’, ‘rxvt’, ‘xterm’ alebo nejakým iným názvom — čo je dôvod, prečo sa budeš musieť spýtať). Spusti terminál, napíš ‘python’ (bez úvodzoviek) a stlač kláves Enter. Mal by si vidieť niečo podobné ako je na obrázku 1.2.

Konzola python windows Konzola python linux

Obrázok 1.2: Vľavo konzola jazyka Python pre Windows, vpravo konzola jazyka Python spustená v Linuxe (Ubuntu).

Ak si práve zistil, že rodičia si moju úvodnú časť neprečítali. . .

. . .pretože ti niečo chýbalo pri postupe podľa mojich inštrukcií — zober ma a strč ma svojim rodičom pod nos, keď čítajú noviny a majú dobrú náladu. Hovor “prosim prosim prosim”, až pokým nezačneš byť otravný, čo ich prinúti vstať z gauča. Samozrejme, druhá možnosť je, že si úvodnú časť prečítaš ty a podľa inštrukcií si nainštaluješ Python sám.

Prvý program v Pythone

Ak sa ti s trochou šťastia podarilo spustiť konzolu,ktorá slúži na zadávanie príkazov a spúšťanie programov Pythonu, môžeme pokračovať ďalej. Po spustení konzoly (alebo po zadaní príkazu), uvidíš ‘výzvu’ príkazového riadka. V konzole Pythonu tvoria výzvu tri lomené zátvorky alebo znamienka väčší než (>):

>>>

Ak dáš vedľa seba viac príkazov Pythonu, dostaneš program, ktorý môže vedieť viac ako len niečo vypísať v konzole. . ., ale začať treba od jednoduchých vecí, preto zatiaľ budeme príkazy zadávať do konzoly za výzvu príkazového riadka (>>>). Tak skúsme pre začiatok napísať tento príkaz:

print("Ahoj Svet")

Nezabudni napísať úvodzovky (to je toto: ” ”) a stlačiť na konci riadka kláves Enter. Mal by si uvidieť niečo takéto:

>>> print("Ahoj Svet")
Ahoj Svet

Výzva sa objaví znova, čo znamená, že konzola Pythonu je pripravená spracovať ďalšie príkazy.

Gratulujem ti! Práve si vytvoril prvý program v Pythone. Príkaz print je funkcia, ktorá vypíše čokoľvek, čo je vo vnútri zátvorky, späť do konzoly– budeme ju neskôr často používať.

Druhý program v Pythone... zase ten istý?

Programy v Pythone by vôbec neboli užitočné, keby sme museli zadávať príkazy v tom momente, keď chceme niečo urobiť—alebo keby sme pre niekoho vytvorili program, a on by ho pred použitím musel celý znova napísať.

Textový procesor, ktorý používaš na napísanie školského projektu má niečo medzi 10 a 100 miliónom riadkov príkazov. Keby sme to vytlačili na papier, bolo by to asi 400,000 strán. . . čo by vytvorilo vežu z papiera vysokú okolo 40 metrov. Len si predstav, že by si si kúpil v obchode takýto program, koľkokrát by si musel prejsť z obchodu k autu, kým by si ho celý do auta naložil. . .
. . .a ako by ste to vôbec odviezli, keby fúkal vietor, ľahko by takú vysokú vežu z papiera rozfúkalo. Našťastie existuje riešenie, aby sme nič takéto nemuseli robiť.

 

rozfúkané papiere

Ak máš Windows otvor si Poznámkový blok (Klikni na Štart, Všetky programy, Príslušenstvo), ak máš Linux, tak sa spýtaj ocina alebo maminy, ktorý editor máš použiť a napíš do neho príkaz print rovnakým spôsobom, ako keď si ho zapisoval do príkazového riadka:

print("Ahoj Svet")

Klikneme na menu Súbor, potom na Uložiť, zadáme názov súboru ahoj.py a ak sme vo Windows uložíme súbor na plochu. V Linuxe súbor uložíme do domovského priečinka (v oboch prípadoch priečinky uvidíme ako ikonu niekde v dialógovom okne). V systéme windows stačí dvakrát kliknúť na uložený súbor. V systéme Linux otvoríme terminál a zadáme:

python ahoj.py

Po spustení uvidíš výpis Ahoj Svet, presne tak, ako keby si ho napísal do konzoly Pythonu (pozri obrázok 1.2).

Teraz môžeš vidieť, že tí múdri ľudia, čo vymysleli Python, ťa zachránili pred potrebou písať ten istý program znova a znova. Nie je to ako pred rokom 1980. Choď a opýtaj sa otca, či mal počítač ZX81 alebo Didaktik, keď bol mladší.

Počítače Didaktik, ktoré sa začali vyrábať v roku 1980 a boli jedny z prvých cenovo dostupných domácich počítačov. Veľa mladých chlapcov a dievčat boli úplne zbláznený do prepisovania kódu hier, ktoré vychádzali v časopisoch, po dlhých hodinách písania však zistili, že program nepracuje tak ako má.

Koniec začiatku

Vitaj v nádhernom svete programovania. Začali sme sa naozaj jednoducho, "Ahoj Svet". Keď sa budeš učiť niekedy iný programovací jazyk, zistíš, že vo väčšine prípadov sa začína rovnako.

V ďalšej kapitole budeme robiť ďalšie užitočné veci s konzolou Pythonu, a potom sa pozrieme na to, ako sa vytvára program.

Kapitola 2

8 krát 3,57 rovná sa...

Koľko je 8 krát 3,57? Potrebuješ použiť kalkulačku? Možno si veľmi šikovný a dokážeš to vypočítať z hlavy — ale o to nám teraz nejde. Rovnakú vec môžeme urobiť aj v konzole Pythonu. Spusti znova konzolu (ak si preskočil kapitolu 1, tak v nej nájdeš informácie ako to urobiť) a keď sa zjaví výzva príkazového riadka napíš 8∗3.57 a stlač kláves Enter (miesto desatinnej čiarky sa v Pythone píše bodka):

Python 3.0 (r30:67503, Dec 6 2008, 23:22:48)
Type "help", "copyright", "credits" or "license" for more information.
>>> 8 * 3.57
28.559999999999999

Znak hviezdička (*) sa používa ako násobenie, miesto znaku (X) alebo (.), ktoré používate v škole (hviezdička sa používa preto, aby si počítač neplietol násobenie s písmenom x).

Python je chybný!?!?

Ak zadáš do kalkulačky 8 x 3,57 výsledok, ktorý sa zobrazí na displeji bude:

28.56

Prečo Python zobrazuje inú hodnotu? Je chybný?

Samozrejme, že nie. Na vine je spôsob s akým počítač pracuje s desatinnou čiarkou (s číslom, ktoré má celú a desatinú časť). Je to komplikované a pre začiatočníkov trochu nezrozumiteľné, Preto bude najjednoduchšie ak si zapamätáš, že ak robíš s desatinými číslami (s desatinnými miestami v čísle), výsledok nebude vždy presne taký, ako očakávaš. Platí to najmä pri operáciách násobenia, delenia, sčítania a odčítania.

Čo takto skúsiť niekoľko príkladov? Predstav si, že dostávaš vreckové 5€ za týždeň a za roznášanie letákov si zarobíš 30€ za týždeň — koľko peňazí budeš mať za rok? Ak to zapíšeme na papier, dostaneme takýto príklad:

(5 + 30) x 52

Čo je 5€ + 30€ krát 52 týždňov v roku. Samozrejme, my sme múdri, preto vieme, že 5 + 30 je 35, preto príklad trochu upravíme:

35 x 52

Čo vieme rýchlejšie zapísať do kalkulačky alebo na papier. Ale rovnako dobre vieme tieto výpočty urobiť aj v konzole:

>>> (5 + 30) * 52
1820
>>> 35 * 52
1820

Čo ak každý deň minieš 10€? Koľko ti zostane na konci roka? Príklad môžeme zapísať rôznymi spôsobmi na papier, ale poďme ho zapísať rovno do konzoly:

>>> (5 + 30 - 10) * 52
1300

To je 5€ a 30€ mínus 10€ krát 52 týždňov v roku. Na konci roka by ti teda zostalo 1300€. Dobre, zatiaľ to nevyzerá byť nič užitočné, pretože to isté vieš urobiť aj na kalkulačke. Ale ak chvíľu vydržíš, neskôr to využijeme na niečo oveľa užitočnejšie.

V konzole Pythonu sa dá násobiť, sčítať, odčítať a vykonávať ďalšie matematické operácie, ktoré nebudeme rozoberať. Zatiaľ nám budú stačiť základné matematické symboly Pythonu (ktoré voláme aj operátory):

+ sčítanie
- odčítanie
* násobenie
/ delenie


Dôvod prečo sa používa lomítko (/) na delenie je ten, že v počítači sa nedá zapísať zlomková čiara (a to, že na niektorých klávesniciach sa nenachádza symbol delenia ÷ (na Slovensku sa kvôli tomu začala používať dvojbodka ":")). Napríklad ak máme 100 vajec a 20 krabíc a chceme vedieť, koľko vajec máme dať do jednej krabice, aby bol v každej krabici rovnaký počet vajec, urobíme 100 deleno 20, a zapíšeme to takto:

100
20

Alebo možno takto:

100 ÷ 20

V Pythone sa to ale zapisuje “100 / 20”. Čo je myslím oveľa jednoduchšie.

Ale ja som len kniha — čo ja o tom môžem vedieť?