Exercices Fonctions & Modules Expressions génératrices
🎉

Bravo!

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

Expressions génératrices

Tu connais les compréhensions de listes : [x**2 for x in range(10)]. Elles créent une liste complète en mémoire.

Si tu remplaces les crochets par des parenthèses, tu obtiens une expression génératrice : (x**2 for x in range(10)). Ca ressemble beaucoup, mais la différence est énorme : au lieu de créer toute la liste d'un coup, l'expression génératrice produit les valeurs une par une, à la demande.

Pour de petites données, ça ne change pas grand chose. Mais imagine calculer les carrés des nombres de 1 à un million : la liste prendrait beaucoup de mémoire, alors que le générateur n'en utilise presque pas.

Tu peux passer une expression génératrice directement à sum(), max(), min(), etc.

Écris une fonction somme_carres(n) qui renvoie la somme des carrés de 1 à n en utilisant une expression génératrice (pas de liste en mémoire).

Exemple :
somme_carres(3) renvoie 14 (car 1 + 4 + 9 = 14)
somme_carres(1) renvoie 1

Tests (3/4)

Somme carrés de 3
assert somme_carres(3) == 14
Somme carrés de 1
assert somme_carres(1) == 1
Somme carrés de 5
assert somme_carres(5) == 55

+ 0 tests cachés

Indices (3 disponibles)

solution.py