Étape 1
Suivons pas à pas le contenu de la liste liste en fonction du paramètre $k$ lors de l'exécution de la fonction :
Étape 2
Initialement, la liste comporte trois éléments : $$\text{liste} = [k, 2k - 3, 14]$$
Étape 3
L'instruction liste.append(liste[0] + liste[1]) ajoute en fin de liste la somme $k + (2k - 3) = 3k - 3$. La liste devient : $$\text{liste} = [k, 2k - 3, 14, 3k - 3]$$
Étape 4
L'instruction elem = liste.pop(1) retire l'élément situé à l'indice $1$, c'est-à-dire $2k - 3$. On obtient $\text{elem} = 2k - 3$, et la liste devient : $$\text{liste} = [k, 14, 3k - 3]$$
Étape 5
L'instruction liste.insert(1, elem + 5) insère la valeur $(2k - 3) + 5 = 2k + 2$ à l'indice $1$. La liste devient : $$\text{liste} = [k, 2k + 2, 14, 3k - 3]$$
Étape 6
La fonction renvoie la somme des éléments d'indices $1$ et $3$, c'est-à-dire : $$\text{liste}[1] + \text{liste}[3] = (2k + 2) + (3k - 3) = 5k - 1$$
Étape 7
Sachant que la valeur renvoyée est égale à $34$, on résout l'équation suivante : $$5k - 1 = 34$$ $$5k = 35$$ $$k = 7$$
Étape 8
La valeur de l'entier $k$ transmis en argument est donc $7$.
Méthode clé
Dresser un tableau de suivi des variables et des modifications de la liste en fonction du paramètre $k$ pour établir une équation algébrique.
Piège à éviter
Oublier qu'une suppression (pop) décale vers la gauche tous les indices des éléments situés après l'élément supprimé.