Étape 1
Analysons la première partie de la fonction calcul_somme(n). La liste $L$ est initialisée à $[1]$. À chaque itération de la boucle for i in range(1, n + 1), une nouvelle liste ligne est construite en démarrant par $1$, en ajoutant la somme de deux éléments consécutifs de $L$, puis en terminant par $1$.
Étape 2
Cette construction repose sur la relation d'Pascal : $\binom{i}{j+1} = \binom{i-1}{j} + \binom{i-1}{j+1}$. La liste $L$ contient donc les coefficients binomiaux $\binom{n}{k}$ pour $k$ allant de $0$ à $n$.
Étape 3
Pour $n = 6$, la liste $L$ obtenue correspond à la 6-ième ligne du triangle de Pascal : $L = \left[ \binom{6}{0}, \binom{6}{1}, \binom{6}{2}, \binom{6}{3}, \binom{6}{4}, \binom{6}{5}, \binom{6}{6} \right] = [1, 6, 15, 20, 15, 6, 1]$.
Étape 4
Analysons la seconde boucle for k in range(len(L)). Le test k % 2 == 0 vérifie si l'indice $k$ est un nombre pair. Les indices retenus sont donc $k = 0$, $k = 2$, $k = 4$ et $k = 6$.
Étape 5
La variable total additionne les éléments de $L$ situés à ces indices pairs : $\text{total} = L[0] + L[2] + L[4] + L[6] = 1 + 15 + 15 + 1 = 32$.
Étape 6
La valeur renvoyée par l'appel calcul_somme(6) est donc $32$.
Méthode clé
Lorsqu'un algorithme construit une liste en ajoutant deux éléments adjacents consécutifs de la liste précédente ($L[j] + L[j+1]$), il génère les lignes successives du triangle de Pascal, correspondant aux coefficients binomiaux $\binom{n}{k}$.
Piège à éviter
Confondre l'indice $k$ dans la liste (qui commence à $0$) avec le numéro du rang d'un élément, ou oublier que la condition `k % 2 == 0` ne sélectionne que les indices pairs.