Programmeren voor Kinderen

Leren programmeren op de basisschool

Les 2

Heb je Les 1 gedaan? Anders begrijp je er straks niks meer van.

Misschien moet je les 1 nog even snel doorlezen. We gaan namelijk verder waar we gebleven zijn.

Alles weer klaarzetten

Gek eigenlijk, dat ‘print’ betekent dat de computer naar het scherm schrijft.  Was de printer nog niet uitgevonden, of zo?

Als het goed is heb je de vorige keer de tafel van 7 naar het scherm geschreven. Dat zag er ongeveer zo uit:

7
14
21
28
35
42
49
56
63
70

Ik denk dat jouw programma er ongeveer zo uitzag:

print 1 * 7
print 2 * 7
print 3 * 7
print 4 * 7
print 5 * 7
print 6 * 7
print 7 * 7
print 8 * 7
print 9 * 7
print 10 * 7

Klopt dat?
Tover het programma nog maar eens een keer tevoorschijn, als je nog weet hoe dat moet.

Eerst klik je op de Start-knop linksonder, en dan type je

cmd

Nu verschijnt het zwarte scherm weer. Daarin type je

notepad print.py

Nu staat als het goed is Notepad weer op je scherm, en je programma.

Is het goed? Gelukkig.

Weet je ook nog hoe je het programma moet starten? Dan type je

python print.py

in het zwarte scherm. Kijk maar even of het nog werkt.

Tekst naar het scherm

Eigenlijk zou het wel leuk zijn als-ie ook de sommen erbij zou zetten, zoiets als:

1 x 7 = 7
2 x 7 = 14
3 x 7 = 21
4 x 7 = 28
5 x 7 = 35
6 x 7 = 42
7 x 7 = 49
8 x 7 = 56
9 x 7 = 63
10 x 7 = 70

Ik heb hier gewoon de letter x gebruikt voor keer, want de computer gebruikt dan wel sterretjes maar wij natuurlijk niet.

Maar hoe moeten we dit eigenlijk doen? Werkt dit?

print 1 x 7 = 1 * 7

Verander je programmaatje maar eens om te kijken of dit werkt. Ik heb wel een tip voor je. Verander eerst alleen de eerste regel, bewaar het, en voer het uit. Uitvoeren betekent dat je

python print.py

typt in het zwarte scherm. Dan gaat de computer het dus echt doen, zeg maar.

Als je alleen de eerste regel verandert kan je even kijken of het werkt. Dan heb je niet van alles voor niks gedaan als je weer een ERROR krijgt.

Zo gaat het meestal bij programmeren: je verandert een heel klein dingetje en probeert het uit. Ik zei toch dat computers heel dom waren? Je moet dus steeds even kijken of-ie het snapt.

Daar gaan we. Verander de eerste regel in

print 1 x 7 = 1 * 7

en voer het uit.

  File "print.py", line 1
    print 1 x 7 = 1 * 7
            ^
SyntaxError: invalid syntax

Helaas pindakaas. Het werkt niet. Gelukkig hebben we nog maar één regel veranderd.

Het ziet er ook wel een beetje verwarrend uit, die eerste regel. Kijk er nog maar eens naar. Als je het niet zelf bedacht had, zou je dan weten wat er werd bedoeld? Het moeilijke is dat het eerste deel gewoon precies zo moet worden geschreven, maar het tweede deel moet worden uitgerekend. En de computer snapt dat niet. Maar ik eigenlijk ook niet, als ik er zo naar kijk.

Ik heb ook een oplossing voor je. Als je wil dat de computer niet nadenkt, zet je de tekst tussen aanhalingstekens: deze ', naast de Enter-toets. Zo dus:

print 'Hallo hallo 2 + 2 = honderd!'

Wat er tussen de aanhalingstekens staat is natuurlijk onzin. Maar de computer kan best onzin printen, als je het lief vraagt.
Verander de eerste regel van je programma maar even terug in

print 1 * 7

Want dat werkte. En zet dan nu die onzinregel erboven. En voer het uit. O ja, eerst bewaren natuurlijk.

Zag je dit?

Hallo hallo 2 + 2 = honderd!
7
14
21
28
35
42
49
56
63
70

Super!

Een tekst tussen aanhalingstekens wordt een string genoemd. Dat betekent eigenlijk touwtje, maar voor programmeurs is het meer een soort ketting. Een ketting van letters. Een stukje tekst, eigenlijk. Maar als je af en toe ‘string’ zegt klink je heel geleerd. En dat willen programmeurs graag, geleerd zijn.

Het verschil tussen een string en andere stukjes van je programma is dat een string eigenlijk helemaal niet bekeken wordt door de computer. Je mag er alles inzetten wat je wilt. Also je tegen je broertje zegt: Zeg eens “sla me”. Je wil niet dat hij je slaat: je wil dat hij precies zegt wat je hem voorzegt.

De andere stukjes van je programma worden wel door de computer bekeken: print bijvoorbeeld, en 1 * 7. Alsof je tegen je broertje zegt: wil je alsjeblieft een glas limonade voor me inschenken? Dan wil je juist wél dat hij het doet.

Nu gaan we die twee combineren. Kijk nog eens naar de tweede regel van je programma. Maak er maar eens dit van:

print '1 x 7 =', 1 * 7

Zie je het? Het eerste deel is een string, het tweede deel is een som. Er staat een komma tussen, dat moet van Python.
Je kunt ook de eerste regel nog even veranderen:

print 'De tafel van', 7

Dan hebben we een mooie titel.

Probeer het maar eens.

Gelukt? Dan kun je de andere negen regels ook veranderen. Maak je programma zo dat het dit schrijft:

De tafel van 7
1 x 7 = 7
2 x 7 = 14
3 x 7 = 21
4 x 7 = 28
5 x 7 = 35
6 x 7 = 42
7 x 7 = 49
8 x 7 = 56
9 x 7 = 63
10 x 7 = 70

Wat heb je geleerd?

Dit was alweer de tweede les. Wat heb je geleerd?

  • Met een computer kan je heel mooi de tafel van zeven schrijven.
  • Als je een programma in Notepad maakt kun je er net zolang aan rommelen tot het werkt.
  • Je kunt het beste steeds een klein beetje veranderen en kijken of de computer het nog snapt.
  • Iets tussen aanhalingstekens heet een string.
  • Programmeurs gebruiken graag moeilijke woorden.
  • Een string is gewoon een stukje tekst.

Tot de volgende keer!

Dion

15 Reacties aan “Les 2”

  1. Peter schreef:

    De term Print stamt uit de tijd van de “hardcopy terminals” – die schreven niet naar een beeldscherm, maar naar papier.

    In die tijd bestonden er wel printers, maar computers gebruikten nog geen beeldschermen.
    Dus de computer schreef het resultaat
    – ofwel naar een printer (en dan werd het op papier afgedrukt)
    – ofwel naar een terminal (en dan werd het ook op papier afgedrukt)
    Daarom noemden ze dat dus: “afdrukken”. Of in het engels: “print”.

    • Eveline schreef:

      Dit klopt. In die tijd bestond er naast ‘print’ ook nog ‘lprint’. Met ‘lprint’ werd de tekst niet naar de hardcopy terminal geschreven, maar naar een luxe printer. Een zogeheten ‘line printer’. Dan kun je meteen raden waar ‘lprint’ voor stond. 😉

      Mijn eerste computer thuis, een Sinclair ZX Spectrum, gebruikte het commando ‘lprint’ ook nog voor printen naar een echte printer. En dus ‘print’ om dingen op het scherm (een televisie) te zetten.

      Bedankt voor het plaatsen van deze reactie Peter, want daardoor kwam deze leuke herinnering in mij op.

  2. ikke schreef:

    alles werkt ni eens het is echt k*t ik doe wat er staat maar nee

  3. belle schreef:

    ik kan het zelfs op mac !

  4. belle schreef:

    doe je het dan wel op windows, ik doe op mac maar dan op brackets en bash…

  5. Rianne schreef:

    het is mij gelukt!!!

  6. Quinn schreef:

    yes het is gelukt!!!!!!!!!!!!!!!!!!!!!

  7. Rijk schreef:

    het uitvoeren lukt niet

  8. Mex schreef:

    Met een omweg kan ik textwrangler openen maar niet via python.. hoe kan ik het wel op de manier doen zoals hier beschreven staat? Nu is het een beetje omslachtig.

  9. boris schreef:

    Dion ik vind het cool dat je dit doet. Je leert mensen iets.

  10. Silke :) schreef:

    Dit is een supergoed programma! ik heb het door mijn papa leren kennen en ik hou er nu al veel te veel van 😉 Wat ik nog niet zo goed snap zijn de benamingen van de schermen… Ze uit elkaar houden, Notepad en Programma enz… Heb je er misschien een tip voor? 🙂

  11. Tiebe schreef:

    Het lukt prima 🙂

Geef een reactie

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.