Aller au contenu

Python Tutor

Python Tutor est un outil en ligne qui permet de visualiser l'exécution d'un programme Python étape par étape. Il affiche l'état de la mémoire (variables, listes, dictionnaires, objets) à chaque instruction, sous forme de diagrammes clairs.

Aucune installation n'est nécessaire : Python Tutor fonctionne directement dans le navigateur.


Python Tutor est accessible à l'adresse : pythontutor.com


  1. Ouvrez Python Tutor dans votre navigateur.
  2. Sélectionnez le langage Python 3 (sélectionné par défaut).
  3. Écrivez ou collez votre code Python dans la zone de saisie.

Par exemple :

fruits = ["pomme", "banane", "cerise"]
for fruit in fruits:
print(fruit)

Cliquez sur le bouton Visualize Execution (Visualiser l'exécution).

Utilisez les boutons de navigation :

BoutonAction
Forward (Avancer)Exécute l'instruction suivante.
Back (Reculer)Revient à l'instruction précédente.
First (Début)Retourne au début du programme.
Last (Fin)Saute à la fin du programme.

À droite du code, un diagramme montre :

  • Les variables globales et leurs valeurs.
  • Les objets en mémoire (listes, dictionnaires, etc.) avec des flèches montrant les références.
  • Les cadres d'exécution des fonctions (quand le programme entre dans une fonction).

Collez ce code et observez comment i et total évoluent :

total = 0
for i in range(1, 6):
total = total + i
print("La somme vaut", total)

En avançant pas à pas, vous voyez i prendre les valeurs 1, 2, 3, 4, 5 et total s'accumuler progressivement.

a = [1, 2, 3]
b = a
b.append(4)
print(a)

Python Tutor montre que a et b pointent vers la même liste en mémoire. Quand on modifie b, on modifie aussi a. C'est un piège classique que la visualisation rend évident.

def factorielle(n):
if n <= 1:
return 1
return n * factorielle(n - 1)
resultat = factorielle(5)

Python Tutor affiche les cadres d'appel empilés : factorielle(5) appelle factorielle(4), qui appelle factorielle(3), etc. Vous voyez la pile se construire puis se dépiler.

eleve = {"nom": "Dupont", "prenom": "Alice", "age": 16}
eleve["classe"] = "2nde3"
for cle, valeur in eleve.items():
print(cle, ":", valeur)

Le diagramme montre le dictionnaire comme une structure avec des paires clé-valeur, et vous voyez les variables cle et valeur changer à chaque tour de boucle.


  1. Après avoir lancé la visualisation, cliquez sur Generate permanent link (Générer un lien permanent).
  2. Copiez le lien généré.
  3. Partagez-le : toute personne qui ouvre ce lien verra votre code et pourra naviguer dans l'exécution.

SituationPython Tutor est utile ?
Comprendre pourquoi mon programme ne donne pas le bon résultat Oui
Visualiser une boucle ou une récursion Oui
Comprendre les références et les listes Oui
Déboguer un petit programme Oui
Travailler sur un gros projet Non (utilisez Thonny)
Utiliser matplotlib ou pygame Non (utilisez Thonny)