Exercices Fonctions & Modules Premier générateur avec yield
🎉

Bravo!

Débutant 🧠 Fondamentaux 10 XP 0 personnes ont réussi

Premier générateur avec yield

Les générateurs sont une manière beaucoup plus simple de créer des itérateurs. Au lieu d'écrire une classe avec __iter__ et __next__, tu écris une simple fonction avec le mot-clé yield.

Quand Python rencontre yield dans une fonction, cette fonction devient un générateur. A chaque appel de next(), la fonction s'exécute jusqu'au prochain yield, renvoie la valeur, puis se met en pause. Au prochain next(), elle reprend exactement là où elle s'était arrêtée.

C'est comme si la fonction avait un bouton pause. Chaque yield met en pause et donne une valeur.

Par exemple :

def trois_valeurs():
yield 10
yield 20
yield 30

list(trois_valeurs()) donne [10, 20, 30]

Écris un générateur compte_a_rebours(n) qui produit les nombres de n jusqu'à 1 (en descendant).

Exemple :
list(compte_a_rebours(5)) renvoie [5, 4, 3, 2, 1]
list(compte_a_rebours(1)) renvoie [1]

Tests (3/4)

Compte à rebours de 5
assert list(compte_a_rebours(5)) == [5, 4, 3, 2, 1]
Compte à rebours de 1
assert list(compte_a_rebours(1)) == [1]
Utilisable dans for
total = 0
for x in compte_a_rebours(3):
    total += x
assert total == 6

+ 0 tests cachés

Indices (3 disponibles)

solution.py