Exercices Fonctions & Modules Classe itérable : Compteur
🎉

Bravo!

Intermédiaire 🧠 Fondamentaux 20 XP 0 personnes ont réussi

Classe itérable : Compteur

Pour qu'un objet soit utilisable dans une boucle for, il doit respecter le protocole itérable. Ça veut dire qu'il doit avoir une méthode __iter__() qui renvoie un itérateur. Et l'itérateur doit avoir une méthode __next__() qui renvoie la valeur suivante ou lève StopIteration quand c'est fini.

Le plus simple, c'est que la même classe fasse les deux : __iter__() renvoie self, et __next__() gère la séquence de valeurs.

Par exemple, voici comment Python utilise ton objet dans un for :

obj = MonObjet()
it = iter(obj) appelle obj.__iter__()
next(it) appelle it.__next__()
next(it) appelle it.__next__()
... jusqu'à StopIteration

Écris une classe Compteur qui prend une valeur de départ et une valeur de fin. Quand on itère dessus, elle produit les entiers de debut à fin inclus.

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

Tests (3/4)

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

+ 0 tests cachés

Indices (3 disponibles)

solution.py