Les 5: Lussen

Afdrukken

Is het je ook opgevallen dat in de vorige les er veel regels op elkaar gelijken?
De tafel van 5 bestaat uit 10 regels die op elkaar lijken. Door gebruik te maken van een lus, kunnen we heel wat tikwerk besparen.

We zullen ook in deze les een nieuw bestand aanmaken.

Start maar cmd op en maak met notepad een nieuw programma lesje5.py aan:

Type dit maar eens over:

for teller in range(1,11):
    print(teller)
print ("Einde lus")

 Merk op dat de 2de regel begint met 4 spaties. In python 3 is het aantal spaties niet belangrijk, maar in python 2.7 moeten dat 4 spaties zijn. Daarom zal ik hier ook 4 spaties gebruiken. Door spaties te gebruiken weet python wat bij de lus hoort en wat niet.

Bewaar en type in het cmd scherm:

python lesje5.py

Was dit wat je had verwacht? De computer telt tot 10. En dat in 2 regels. De 3de regel hoort niet meer bij de lus.

Wat zou de uitvoer zijn, als dit je programma zou zijn:

for teller in range(1,11):
    print(teller)
    print ("Einde lus")

Had je dit verwacht?

for betekent 'voor' en range betekent zoiets als: alle getallen tussen dit en dat.
Hier staat dus iets zoals: Laat de teller oplopen tussen één en elf en print die op het scherm.

Met het for commando geven we aan de computer door dat deze in een cirkeltje moet werken. De computer spaart je hier heel wat tikwerk uit.
Je zou het ook zo kunnen doen:

teller = 1
print (teller)
teller = 2
print (teller)
teller = 3
print (teller)

...

teller = 10
print(teller)
print ("Einde lus")

Ik vind het nu al lastig om dat allemaal in te tikken en ik ben nog maar aan 3. Wat als je zo iets moet doen tot 10 of 20 of 1000000?
Dat zie ik helemaal niet zitten. Daarom gebruik ik de for lus: lekker gemakkelijk . Door het "for ... in range" commando te gebruiken zorg je er ook voor dat je minder fouten maakt en wordt programmeren ook minder saai. De computer doet het saaie werk voor jou.

Hoe kunnen we de tafel van 9 maken met de for lus. Eerst proberen en dan kijken naar wat er hier onder staat.

OK, hier komt het programma:

getal = 9
print ("Dit is de tafel van ", getal)
print ("-----------------------")
for teller in range(1,11):
    print(teller, " x ", getal, " = ", teller * getal)
print ()
print ("Programmeren is leuk!")

Ziet er leuk uit.
Kun je het programma aanpassen en de computer laten rekenen tot 20 x 123?

Een goede programmeur is een luie programmeur

Maar om hem tot 20 x 123 te laten rekenen was nog steeds hetzelfde aantal regels. En om de computer tot 1000 keer 123456 te laten rekenen was het nog steeds hetzefde aantal regels. Want jij, de programmeur, was lui, en liet de computer al het werk doen. En dat allemaal omdat we de getallen in doosjes hadden gestopt: een teller-doosje waar de for-lus steeds een nieuw getal instopte, en een getal-doosje waar 123 inzat.

Ze zeggen wel eens dat een goede programmeur een luie programmeur is. Want programmeurs willen nooit veel typen. Maar om ervoor te zorgen dat je niet veel hoeft te typen moet je wel heel hard nadenken: wat kan ik allemaal in een doosje stoppen?

Dat is een beetje de truc van programmeren: eerst ga je heel lang nadenken, en dan ga je heel weinig typen. Onthoud dat maar.
Hoe meer je dit gebruikt hoe gemakkelijker het wordt.

Wat heb je geleerd?

Wat hebben we in deze les geleerd?

  •  Met een for-lus kan je tellen.
  • Als je de computer vraagt of hij tot 11 wil tellen, telt hij tot tien.
  • Computers hebben hele saaie gedachten.
  • Computers vinden het niet erg om dingen heel vaak te herhalen.
  • Kinderen vinden het wel erg om dingen te herhalen, want dat is saaaaaaaaaaaaaaaaaai.
  • Een goede programmeur is een luie programmeur.

Vind je het nog leuk? Volgende keer meer!
En denk er aan: blijf oefenen.

 

Plaats reactie


Beveiligingscode
Vernieuwen

Thursday the 21st. . Bigcommerce review - All rights reserved.