Retour aux quiz
Débutant

Fonction récursive

Quel est le type retourné par cette expression ?

quiz.py
1
x = [1, 2, 3] 
2
 x.append(x) 
3
 print(x)

Réponses possibles

A[1, 2, 3, [1, 2, 3]]
BErreur
C[1, 2, 3]
D[1, 2, 3, [...]]

Explication

append(x) ajoute une référence à la liste x elle-même en qui créant une référence circulaire. Donc x contient maintenant [1, 2, 3, x], où le dernier élément est une référence à x. Quand on affiche x, Python voit la récursivité et l'affiche sous la forme [1, 2, 3, [...]] pour éviter une boucle infinie qui ressemblerait à [1, 2, 3, [1, 2, 3, [1, 2, 3, [... Et si on essaie d'afficher x[3], on obtient x donc [1, 2, 3, [...]].