Python Academy · Les

Geneste lussen en luspatronen

Combineer geneste lussen voor rasters, patronen en accumulatie.

Les 4 van 414 stappen

Geneste lussen en luspatronen is een gratis Python Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Python Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Python Academy bevat in totaal 4 lessen.

Inleiding

Door lussen te combineren, krijg je patronen voor onder andere het doorlopen van matrices, zoekopdrachten met meerdere niveaus en het genereren van combinaties.

Eenvoudige geneste lus

Twee for-lussen: de buitenste wordt N keer uitgevoerd en de binnenste M keer per iteratie van de buitenste lus — in totaal N*M iteraties.
for i in range(3):
    for j in range(3):
        print(i, j)

Vermenigvuldigingstabel

Geneste lussen produceren op natuurlijke wijze tabellen. De buitenste lus staat voor de rij en de binnenste voor de kolom.
for i in range(1, 4):
    for j in range(1, 4):
        print(f'{i*j:3}', end='')
    print()

Driehoekspatroon

Druk per rij * i keer af: for i in range(1,6): print('*'*i). Dit laat zien hoe het aantal herhalingen van de binnenste lus afhangt van de buitenste lus.
for i in range(1, 6):
    print('*' * i)

Een matrix doorlopen

Geneste lussen zijn de standaardmanier om elke cel van een tweedimensionale lijst te bezoeken.
matrix = [[1,2,3],[4,5,6]]
for row in matrix:
    for val in row:
        print(val, end=' ')
    print()

Accumulatiepatroon

Tel alle elementen op: total = 0; for row in matrix: for v in row: total += v
matrix = [[1,2],[3,4]]
total = sum(v for row in matrix for v in row)
print(total)

Elementen zoeken

Zoek een waarde in een tweedimensionale lijst en leg de positie ervan vast met een geneste lus.
matrix = [[1,2,3],[4,5,6],[7,8,9]]
for i, row in enumerate(matrix):
    for j, val in enumerate(row):
        if val == 5:
            print(f'Found at ({i},{j})')

Combinaties zonder herhaling

for i in range(n): for j in range(i+1, n): genereert alle unieke paren uit een lijst.
items = ['a','b','c']
for i in range(len(items)):
    for j in range(i+1, len(items)):
        print(items[i], items[j])

Efficiëntie van geneste lussen

O(n^2) komt vaak voor bij geneste lussen. Als de binnenste lus een opzoeking in een dict doet in plaats van een lijst te doorlopen, kun je dit terugbrengen tot O(n).
# Efficient: use a set for inner lookup
data = {1, 2, 3, 4}
result = [x for x in range(10) if x in data]  # O(n)
print(result)

Vlak maken met een geneste comprehensie

[x for row in matrix for x in row] is een geneste comprehensie die een vlakke lijst oplevert. Lees deze van links naar rechts: de buitenste lus komt eerst.
matrix = [[1,2],[3,4]]
flat = [x for row in matrix for x in row]
print(flat)

Geneste lussen verlaten

Gebruik een vlag of plaats de lussen in een functie en gebruik return om meerdere niveaus netjes te verlaten.
def find_in_matrix(matrix, target):
    for i, row in enumerate(matrix):
        for j, val in enumerate(row):
            if val == target:
                return (i, j)
    return None
print(find_in_matrix([[1,2],[3,4]], 3))

Snelle controle

Wat is het totale aantal iteraties voor twee geneste lussen met range(4) en range(3)?

Samenvatting

Geneste lussen: N*M totale iteraties. Gebruik ze voor patronen, het doorlopen van matrices en combinaties. Maak lijsten vlak met een comprehensie. Verlaat de lussen met return of een vlag.

Ga door

Goed gedaan! Ga verder met de volgende les om je vaardigheden verder te ontwikkelen.
Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
76
Lessen
320

Veelgestelde vragen

Is de les “Geneste lussen en luspatronen” gratis?

Ja — de volledige tekst van “Geneste lussen en luspatronen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Python Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Python Academy bevat in totaal 4 lessen.

Wat leer ik in “Geneste lussen en luspatronen”?

Combineer geneste lussen voor rasters, patronen en accumulatie. Je oefent met Python Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Python Academy te beginnen?

Ervaring vooraf is niet nodig. Python Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “Geneste lussen en luspatronen”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Python Academy?

Ja. Elke les over Python Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. if / elif / else-instructies
  2. for-lussen en range()
  3. while-lussen en lusbesturing
  4. Geneste lussen en luspatronen
← Terug naar Python Academy