Je kan met lussen een stapje verder gaan om computers optimaal te gebruiken om herhalende taken uit te voeren, bijvoorbeeld door lussen in elkaar te gebruiken. Dat noemen we geneste lussen.

nest

👀 Voorbeeld - Coördinaten

Het volgende stukje code toont hoe je alle mogelijke coördinaten tussen (0,0) en (5,5) kan printen, namelijk (0,1), (0,2), …, (0,5), (1,5), …, (5,5).

for rij in range(6):
    for kolom in range(6):
        print( '(', rij, ',', kolom, ')')

Er worden dus 36 (= 6 × 6) coördinaten geprint, in een welbepaalde volgorde: In de buitenste lus krijgt rij waarde 0. We stappen dan over de binnenste lus:

  1. rij=0, kolom=0
  2. rij=0, kolom=1
  3. rij=0, kolom=2
  4. rij=0, kolom=3
  5. rij=0, kolom=4
  6. rij=0, kolom=5

Daarna wordt (in de buitenste lus) rij gelijk aan 1 en herhalen we de binnenste lus:

  1. rij=1, kolom=0
  2. rij=1, kolom=1
  3. rij=1, kolom=2
  4. rij=1, kolom=3
  5. rij=1, kolom=4
  6. rij=1, kolom=5

Zo gaat het verder voor rij=2, rij=3, rij=4 en rij=5.

🧠 Denkoefening - Tel de coördinaten

Kijk naar het volgende stukje code.

for rij in range(1, 8):
    for kolom in range(2, 5):
        print( '(', rij, ',', kolom, ')')

Hoeveel coördinaten worden er geprint? Probeer het eens uit in de sandbox.

🧠 Denkoefening - Teller

Kijk naar het volgende stukje code.

teller = 0
for i in range(1,4):
    for j in range(i+1,9):
        teller += 1
print(teller)

Wat is de waarde van teller aan het einde van het programma?

👀 Voorbeeld - Driehoek

De volgende code print een driehoek van sterretjes

for rij in range(1,6):
    for kolom in range(1,rij+1):
        print('*', end=' ')
    print('')
* 
* * 
* * * 
* * * * 
* * * * * 

💻 Programmeeroefening - Sterretjes driehoek

Pas in de editor hieronder het bovenstaande voorbeeld aan om de driehoek ondersteboven te printen:

* * * * *
* * * *
* * * 
* * 
*