Leçon #5 : combiner des fonctions

Une fonction qui renvoie des résultats

Relancer gedit, récupérer un des programmes de la dernière fois, avec une fonction "calcul" qui marche. Par exemeple :

def calcul(a,b,c,d,e): print a+b+cde

calcul(1,2,10,100,1000)

Remplacer "print" par "return"

def calcul(a,b,c,d,e): return a+b+cde

calcul(1,2,10,100,1000)

Que se passe-t-il quand on le lance ?

Et si on ajoute "print" devant le dernier "calcul"

def calcul(a,b,c,d,e): return a+b+cde

print calcul(1,2,10,100,1000)

2 fonctions imbriquées

Essayer le programme suivant :

def calcul(a,b,c,d,e): return a+b+cde

print calcul(1,2,10,100,1000)

def super_calcul(a,b): return alcul(a,a,a,a,a)+calcul(b,b,b,b,b)

print super_calcul(1,2)

Ce qui se passe : la fonction super_calcul appelle calcul plusieurs fois.

Débugger

Pour mieux comprendre ce qui se passe, on peut mettre des "traces", par exemple :

def calcul(a,b,c,d,e): print "calcul avec",a,b,c,d,e return a+b+cde

print calcul(1,2,10,100,1000)

def super_calcul(a,b): print "super_calcul avec",a,b return alcul(a,a,a,a,a)+calcul(b,b,b,b,b)

print super_calcul(1,2)