Aller au contenu

Python Tutor

Présentation

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.

Pourquoi utiliser Python Tutor ?

  • Visualisation de la mémoire : voyez exactement ce que contient chaque variable à chaque étape.
  • Pas à pas : avancez ou reculez dans l'exécution du programme.
  • Compréhension des structures : visualisez les listes, les dictionnaires, les tuples et les objets sous forme de schémas.
  • Aucune installation : tout se passe dans le navigateur.
  • Partage facile : générez un lien pour partager votre visualisation avec votre professeur ou vos camarades.

Accès

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

Astuce

Ajoutez le site en favori dans votre navigateur pour y accéder rapidement.


Utilisation pas à pas

Étape 1 : écrire ou coller du code

  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)

Étape 2 : lancer la visualisation

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

Étape 3 : naviguer dans l'exécution

Utilisez les boutons de navigation :

Bouton Action
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.

Étape 4 : observer la mémoire

À 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).

Exemples d'utilisation

Comprendre les boucles

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.

Comprendre les listes et les références

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.

Comprendre la récursivité

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.

Comprendre les dictionnaires

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.


Fonctionnalités utiles

Partager une visualisation

  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.

Limites à connaître

Limitations

  • Taille du code : Python Tutor est conçu pour de petits programmes (quelques dizaines de lignes). Il n'est pas adapté aux projets volumineux.
  • Bibliothèques : les bibliothèques externes (matplotlib, pygame, etc.) ne sont pas disponibles.
  • Durée d'exécution : les programmes trop longs (boucles infinies, gros calculs) seront interrompus automatiquement.
  • Entrées utilisateur : la fonction input() est supportée mais moins pratique qu'en local.

Quand utiliser Python Tutor ?

Situation Python 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)