0Pricing
Python Academy · Leçon

Générateurs

Comprenez les générateurs et leur utilisation pour créer des itérateurs.

Générateurs est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 5. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 5 leçons au total.

Introduction aux générateurs

Introduction aux générateurs

Les générateurs sont un type particulier d'itérateur en Python qui vous permettent de parcourir les données avec une évaluation différée. Au lieu de renvoyer toutes les données en une seule fois, ils produisent un élément à la fois, ce qui économise la mémoire.

Dans cette leçon, vous apprendrez à créer et à utiliser des générateurs en Python.

Générateurs — illustration 1

Qu'est-ce qu'un générateur

Qu'est-ce qu'un générateur

Un générateur est une fonction qui utilise le mot-clé yield pour renvoyer des valeurs une par une. Chaque appel à la méthode next() du générateur reprend l'exécution là où il avait produit sa dernière valeur.

# 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

Fonctionnement des générateurs

Fonctionnement des générateurs

Les générateurs enregistrent l'état de la fonction afin de pouvoir reprendre l'exécution exactement là où elle s'était arrêtée. Ils économisent ainsi la mémoire et sont particulièrement adaptés aux grands ensembles de données.

# 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

Expressions génératrices

Expressions génératrices

Les expressions génératrices ressemblent aux compréhensions de listes, mais utilisent des parenthèses au lieu de crochets. Elles créent des générateurs plutôt que des listes.

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

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

Générateurs ou listes

Générateurs ou listes

Les générateurs utilisent moins de mémoire que les listes, car ils ne stockent pas toutes les données en mémoire. Ils les produisent plutôt à la volée.

# 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'>

Cas d'utilisation des générateurs

Cas d'utilisation des générateurs

Les générateurs sont particulièrement adaptés pour :

  • Traiter de grands ensembles de données qui ne tiennent pas en mémoire.
  • Générer des séquences infinies.
  • Évaluer les données de manière différée.

Générateurs infinis

Générateurs infinis

Les générateurs peuvent produire des séquences infinies, comme une suite interminable de nombres. Veillez à arrêter la boucle pour éviter une exécution infinie.

# 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

Fonctions génératrices avec plusieurs productions

Fonctions génératrices avec plusieurs productions

Les fonctions génératrices peuvent contenir plusieurs instructions yield, ce qui vous permet de créer des séquences complexes :

# 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

Erreurs courantes avec les générateurs

Erreurs courantes avec les générateurs

Voici quelques erreurs à éviter :

  • Utiliser return au lieu de yield dans une fonction génératrice.
  • Ne pas consommer le générateur avec une boucle ou next().
  • Utiliser des générateurs pour de petits ensembles de données alors que les listes sont plus adaptées.

Qu'avez-vous appris

Qu'avez-vous appris

Dans cette leçon, vous avez appris :

  • Ce que sont les générateurs et comment ils fonctionnent dans Python.
  • Comment utiliser yield pour créer des fonctions génératrices.
  • Les différences entre les générateurs et les listes.
  • Les cas d'utilisation des générateurs, notamment les séquences infinies et les grands ensembles de données.

Excellent travail ! Passons au sujet suivant.

Générateurs — illustration 11

Questions Fréquemment Posées

La leçon « Générateurs » est-elle gratuite ?

Oui — le texte complet de « Générateurs » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 5 leçons au total.

Qu'est-ce que j'apprendrai dans « Générateurs » ?

Comprenez les générateurs et leur utilisation pour créer des itérateurs. Tu pratiques Python Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Python Academy ?

Aucune expérience préalable n'est requise. Python Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 5.

Combien de temps prend la leçon « Générateurs » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Python Academy ?

Oui. Chaque leçon Python Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Décorateurs
  2. Générateurs
  3. Gestionnaires de contexte (instructions with)
  4. Compréhensions (listes, ensembles et dictionnaires)
  5. Itérateurs et itérables
← Retour à Python Academy