Cours d'introduction au langage de programmation Python

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

Chapitre 11 - Débogage

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

Exemple d'utilisation du débogueur

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

Pas-à-pas grossier

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

Pas-à-pas détaillé

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

Point d'arrêt (Breakpoint)

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.

Exercices

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