Fonctions
Principe
En programmation, une fonction réalise un traitement à partir de variables d'entrées (arguments) puis renvoie le résultat de ce traitement.
Avertissement
Une fonction peut admettre aucun, un ou plusieurs arguments.
Fonction à un argument
La fonction ci-dessous calcule la surface de l'aire d'un carré de côté a
.
def aire_carre(a) :
aire = a*a
return aire
Le mot clé
def
est toujours utilisé pour définir une fonction.Ici
aire_carre
est le nom (identifiant) de la fonction.La variable
a
est un paramètre (ou argument) de la fonction.Après le caractère
:
toutes instructions appartenant à la fonction doivent-être indentées.Le mot clé
return
est utilisé pour renvoyer le résultat de la fonction.
>>> %Run
>>> aire_carre(5)
25
L'exécution du script est indispensable avant l'appel de la fonction.
Les parenthèse sont obligatoires afin de préciser l'argument lors de l'appel de la fonction.
Fonction à deux arguments
Considérons maintenant une fonction qui retourne la surface de l'aire d'un rectangle de longueur L
et de largeur l
.
def aire_rectangle(L, l):
aire = L*l
return aire
Ici la fonction prend 2 arguments
l
etL
!
>>> %Run
>>> aire_rectangle(5, 4)
20
La variable intermédiaire aire
n'est indispensable. L'écriture de la fonction peut se simplifier comme suit :
def aire_rectangle(L, l):
return L*l
Exemple : énergie mécanique
La fonction ci-dessous calcule une énergie potentielle de pesanteur.
def Epp(m, h):
return m*9.81*h
Les variables
m
eth
sont locales. Elles n'existent que dans la fonction !
>>> %Run
>>> Epp(50,10)
4905.0
Il est possible de calculer l'énergie mécanique à partir des fonctions donnant l'énergie potentielle et l'énergie cinétique.
def Epp(m, h):
return m*9.81*h
def Ec(m, v):
return 0.5*m*v**2
def Em(m, h, v):
return Epp(m, h) + Ec(m, v)
La fonction
Em()
fait bien appel aux deux autres fonctionsEpp()
etEc()
!
>>> %Run
>>> Epp(50, 10)
4905.0
>>> Ec(50, 13)
4225.0
>>> Em(50, 10, 13)
9130.0
>>> m
Traceback (most recent call last):
...
NameError: name 'm' is not defined
Pour chaque fonction, la variable
m
n'est pas la même. C'est toujours une variable locale de la fonction considérée. Elle n'est d'ailleurs pas accessible dans le programme principal !
Exercices d'application