Étape 1
On analyse la construction de la liste en compréhension.
Étape 2
L'instruction range(1, 8) fait prendre à la variable $k$ les valeurs entières successives de $1$ à $7$ inclus : $k \in \{1, 2, 3, 4, 5, 6, 7\}$.
Étape 3
La condition k % 3 != 0 ne retient que les entiers dont le reste dans la division euclidienne par $3$ n'est pas nul, c'est-à-dire les entiers qui ne sont pas des multiples de $3$. Les valeurs éliminées sont donc $3$ et $6$.
Étape 4
Les valeurs de $k$ retenues sont donc : $1$, $2$, $4$, $5$ et $7$.
Étape 5
Pour chaque valeur de $k$ retenue, on calcule l'élément $2k + 1$ ajouté à la liste :
Étape 6
Pour $k = 1$ : $2 \times 1 + 1 = 3$
Étape 7
Pour $k = 2$ : $2 \times 2 + 1 = 5$
Étape 8
Pour $k = 4$ : $2 \times 4 + 1 = 9$
Étape 9
Pour $k = 5$ : $2 \times 5 + 1 = 11$
Étape 10
Pour $k = 7$ : $2 \times 7 + 1 = 15$
Étape 11
La liste obtenue est donc : liste = [3, 5, 9, 11, 15].
Étape 12
On calcule enfin la somme de ses éléments :
Étape 13
$$S = 3 + 5 + 9 + 11 + 15 = 43$$
Méthode clé
Déterminer précisément l'ensemble des valeurs de la variable de boucle satisfaisant le test conditionnel avant d'évaluer l'expression.
Piège à éviter
Attention aux bornes de `range(1, 8)` : le dernier entier parcouru est 7 et non 8.