N.B. Niveau : Terminale S, enseignement de spécialité ISN (Informatique et Sciences du Numérique)
Ce cours a été testé sous Windows et GNU/Linux avec Python version 2.7
Le débogueur est un outil utile au débutant car il aide à comprendre le fonctionnement d'un script existant.
Pour un professionnel, il permet le test et la mise au point d'un
script en cours de développement (détection et élimination des bugs).
Commencer par télécharger le script test_debugger.py
Ce script affiche le carré des nombres entiers de 1 à 5.
Nous allons tester son bon fonctionnement avec le débogueur de l'environnement IDLE.
Ouvrir IDLE :
Démarrer → Programmes → Python 2.7 → IDLE (Python GUI)
Puis lancer le débogueur :
Debug → Debugger
Cocher les cases Source et Globals :
Le débogueur possède 5 boutons de commande :
Dans l'interpréteur intéractif (Python Shell), ouvrir le script test_debugger.py
:
File → Open → test_debugger.py
La fenêtre du code source s'ouvre.
Dans cette fenêtre : Run → Run Module
Pour faire du pas-à-pas grossier, cliquer sur le bouton Over du débogueur :
Noter que l'on peut observer le contenu des variables (actuellement a
vaut 4).
Pour faire du pas-à-pas détaillé, cliquer sur le bouton Step du débogueur.
Pour sortir immédiatement d'une fonction, utiliser le bouton Out (en particulier pour sortir du script PyShell.py
qui gère la fonction print()
).
Dans la fenêtre du code source, sur la ligne d'instruction considérée, faire un clic droit et choisir Set Breakpoint (la ligne est alors surlignée en jaune) :
Puis utiliser le bouton Go.
Exercice 11.1 A l'aide du débogueur, étudier la fonction récursive factorielle()
qui retourne la factorielle d'un nombre entier :
def factorielle(x): if x < 2: return 1 else: result = x*factorielle(x-1) return result print factorielle(5)
N.B. Une fonction récursive est une fonction qui s'appelle elle-même.
Exercice 11.2 A l'aide du débogueur, étudier la suite de Conway dont le script est disponible ici :
http://fr.wikipedia.org/wiki/Suite_de_Conway>>> Jusqu'à quel rang ? 7 Terme 1 = 1 Terme 2 = 11 Terme 3 = 21 Terme 4 = 1211 Terme 5 = 111221 Terme 6 = 312211 Terme 7 = 13112221
N.B. Le script est écrit dans la version 3