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 For Kids 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 For Kids, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python For Kids comprend 5 leçons au total.
Introduction aux générateurs
Les générateurs sont un type particulier d’itérateur en Python qui vous permet de parcourir les 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 réduit l’utilisation de 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 ?
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
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 peu de mémoire et conviennent parfaitement aux jeux de données volumineux.
# 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
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
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 au contraire au fur et à mesure.
# 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
Les générateurs sont idéaux pour :
- Traiter de grands jeux 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
Les générateurs peuvent produire des séquences infinies, par exemple 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 instructions yield
Les fonctions génératrices peuvent contenir plusieurs instructions yield, ce qui 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
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 jeux de données, alors que les listes conviennent mieux.
Qu’avons-nous appris ?
Dans cette leçon, vous avez appris :
- Ce que sont les générateurs et comment ils fonctionnent en Python.
- Comment 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 prochain sujet.

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 For Kids, passe à CoddyKit PRO. Le cours Python For Kids 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 For Kids 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 For Kids ?
Aucune expérience préalable n'est requise. Python For Kids 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 For Kids ?
Oui. Chaque leçon Python For Kids 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