Python Academy · Les

Generators

Begrijp generators en hun gebruik bij het maken van iterators

Les 2 van 511 stappen

Generators is een gratis Python Academy-les op CoddyKit. Dit is les 2 van 5. 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 5 lessen.

Inleiding tot generatoren

Generatoren zijn een speciaal type iterator in Python waarmee je lui over gegevens kunt itereren. In plaats van alle gegevens in één keer terug te geven, leveren ze telkens één element op, waardoor ze efficiënt met geheugen omgaan.

In deze les leer je hoe je generatoren in Python maakt en gebruikt.

Generators — illustratie 1

Wat is een generator?

Een generator is een functie die het sleutelwoord yield gebruikt om telkens één waarde terug te geven. Elke aanroep van de methode next() van de generator hervat de uitvoering vanaf de plek waar de generator voor het laatst een waarde opleverde.

# Basic generator example
def my_generator():
    yield 1
    yield 2
    yield 3

# Using the generator
gen = my_generator()
print(next(gen))  # Outputs: 1
print(next(gen))  # Outputs: 2
print(next(gen))  # Outputs: 3

Hoe generatoren werken

Generatoren bewaren de toestand van de functie, zodat ze de uitvoering precies kunnen hervatten op het punt waar ze waren gestopt. Daardoor gaan ze efficiënt met geheugen om en zijn ze ideaal voor grote gegevensverzamelingen.

# Example: Generating a range of numbers
def range_generator(start, end):
    while start < end:
        yield start
        start += 1

for number in range_generator(1, 5):
    print(number)  # Outputs: 1, 2, 3, 4

Generator-expressies

Generator-expressies lijken op lijstcomprehensies, maar gebruiken ronde haakjes in plaats van vierkante haakjes. Ze maken generatoren in plaats van lijsten.

# Generator expression
gen_exp = (x * x for x in range(5))

for value in gen_exp:
    print(value)  # Outputs: 0, 1, 4, 9, 16

Generatoren versus lijsten

Generatoren gaan efficiënter met geheugen om dan lijsten, omdat ze niet alle gegevens in het geheugen opslaan. In plaats daarvan genereren ze de gegevens tijdens het uitvoeren.

# Comparing lists and generators
# List comprehension
list_comp = [x * x for x in range(1000000)]

# Generator expression
gen_exp = (x * x for x in range(1000000))

# List comprehension uses more memory
print(type(list_comp))  # Outputs: <class 'list'>
print(type(gen_exp))    # Outputs: <class 'generator'>

Toepassingen van generatoren

Generatoren zijn ideaal voor:

  • Het verwerken van grote gegevensverzamelingen die niet in het geheugen passen.
  • Het genereren van oneindige reeksen.
  • Luie evaluatie van gegevens.

Oneindige generatoren

Generatoren kunnen oneindige reeksen produceren, zoals een eindeloze reeks getallen. Zorg ervoor dat je de lus stopt om oneindige uitvoering te voorkomen.

# Infinite generator example
def infinite_sequence():
    num = 0
    while True:
        yield num
        num += 1

# Using the infinite generator
for i in infinite_sequence():
    if i > 5:
        break
    print(i)  # Outputs: 0, 1, 2, 3, 4, 5

Generatorfuncties met meerdere yield-instructies

Generatorfuncties kunnen meerdere yield-instructies bevatten, waarmee je complexe reeksen kunt maken:

# Multiple yields in a generator
def multi_yield():
    yield "First"
    yield "Second"
    yield "Third"

for value in multi_yield():
    print(value)  # Outputs: First, Second, Third

Veelvoorkomende fouten met generatoren

Dit zijn enkele fouten die je moet vermijden:

  • return gebruiken in plaats van yield in een generatorfunctie.
  • De generator niet uitlezen met een lus of next().
  • Generatoren gebruiken voor kleine gegevensverzamelingen waarvoor lijsten geschikter zijn.

Wat hebben we geleerd?

In deze les heb je geleerd:

  • Wat generatoren zijn en hoe ze in Python werken.
  • Hoe je yield gebruikt om generatorfuncties te maken.
  • Wat de verschillen zijn tussen generatoren en lijsten.
  • Welke toepassingen generatoren hebben, zoals oneindige reeksen en grote gegevensverzamelingen.

Goed gedaan! Laten we doorgaan naar het volgende onderwerp.

Generators — illustratie 11
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 “Generators” gratis?

Ja — de volledige tekst van “Generators” 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 5 lessen.

Wat leer ik in “Generators”?

Begrijp generators en hun gebruik bij het maken van iterators 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 2 van 5.

Hoe lang duurt de les “Generators”?

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. Decorators
  2. Generators
  3. Contextmanagers (with-instructies)
  4. Comprehensions (lijst, set en woordenboek)
  5. Iterators en iterables
← Terug naar Python Academy