Générateurs
Comprenez les générateurs et leur utilisation pour créer des itérateurs
Générateurs est une leçon Learn AI with Python 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 Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python 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 des données de manière différée. Au lieu de renvoyer toutes les données en une seule fois, ils produisent un élément à la fois, ce qui permet d'utiliser efficacement la mémoire.
Dans cette leçon, vous apprendrez à créer et à utiliser des générateurs en Python.

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ù la dernière valeur a été produite.
# 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: 3Fonctionnement 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 utilisent ainsi efficacement la mémoire et conviennent parfaitement 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, 4Expressions 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, 16Générateurs et listes
Générateurs et listes
Les générateurs utilisent plus efficacement la mémoire que les listes, car ils ne stockent pas toutes les données en mémoire. Ils génèrent plutôt les données à 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 idéaux 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 de nombres sans fin. 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, 5Fonctions 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, ThirdErreurs courantes avec les générateurs
Erreurs courantes avec les générateurs
Voici quelques erreurs à éviter :
- Utiliser
returnau lieu deyielddans une fonction génératrice. - Ne pas parcourir 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 conviennent mieux.
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 en Python.
- À utiliser
yieldpour 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, comme les séquences infinies et les grands ensembles de données.
Excellent travail ! Passons au sujet suivant.

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 Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python 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 Learn AI with Python 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 Learn AI with Python ?
Aucune expérience préalable n'est requise. Learn AI with Python 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 Learn AI with Python ?
Oui. Chaque leçon Learn AI with Python 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
- Décorateurs
- Générateurs
- Gestionnaires de contexte (instructions with)
- Compréhensions (listes, ensembles et dictionnaires)
- Itérateurs et objets itérables