Les Fonctions
Les Fonctions
Les Fonctions
Fonctions en Python
Définition d’une fonction - def
Syntaxe
La syntaxe Python pour la définition d’une fonction est la suivante :
Vous pouvez choisir n’importe quel nom pour la fonction que vous créez, à l’exception des
mots-clés réservés du langage, et à la condition de n’utiliser aucun caractère spécial ou
accentué (le caractère souligné « _ » est permis). Comme c’est le cas pour les noms de
variables, on utilise par convention des minuscules, notamment au début du nom (les noms
commençant par une majuscule seront réservés aux classes).
Corps de la fonction
Comme les instructions if, for et while, l’instruction def est une instruction composée. La
ligne contenant cette instruction se termine obligatoirement par un deux-points :, qui
introduisent un bloc d’instructions qui est précisé grâce à l’indentation. Ce bloc d’instructions
constitue le corps de la fonction.
def compteur3():
i = 0
while i < 3:
print(i)
i = i + 1
print("bonjour")
compteur3()
compteur3()
bonjour
0
1
2
0
1
2
En entrant ces quelques lignes, nous avons défini une fonction très simple qui compte jusqu’à
2. Notez bien les parenthèses, les deux-points, et l’indentation du bloc d’instructions qui suit
1
Mouna essoufiani
Langage Python
la ligne d’en-tête (c’est ce bloc d’instructions qui constitue le corps de la fonction proprement
dite).
Après la définition de la fonction, on trouve le programme principal qui débute par
l’instruction print("bonjour"). Il y a ensuite au sein du programme principal, l’appel de la
fonction grâce à compteur3().
Nous pouvons maintenant réutiliser cette fonction à plusieurs reprises, autant de fois que nous
le souhaitons.
Nous pouvons également l’incorporer dans la définition d’une autre fonction.
Exemple de fonction qui appelle une autre fonction
def compteur3():
i = 0
while i < 3:
print(i)
i = i + 1
def double_compteur3():
compteur3()
compteur3()
print("bonjour")
double_compteur3()
def compteur(stop):
i = 0
while i < stop:
print(i)
i = i + 1
compteur(4)
compteur(2)
0
1
2
3
0
1
Pour tester cette nouvelle fonction, il nous suffit de l’appeler avec un argument.
Exemple 2
2
Mouna essoufiani
Langage Python
def compteur(stop):
i = 0
while i < stop:
print(i)
i = i + 1
a = 5
compteur(a)
0
1
2
3
4
Avertissement
Dans l’exemple ci-dessus, l’argument que nous passons à la fonction compteur() est le
contenu de la variable a. A l’intérieur de la fonction, cet argument est affecté au
paramètre stop, qui est une tout autre variable.
Notez donc bien dès à présent que :
Le nom d’une variable que nous passons comme argument n’a rien à voir avec le nom
du paramètre correspondant dans la fonction.
Ces noms peuvent être identiques si vous le voulez, mais vous devez bien comprendre
qu’ils ne désignent pas la même chose (en dépit du fait qu’ils puissent contenir une
valeur identique).
compteur_complet(1, 7, 2)
1
3
5
3
Mouna essoufiani
Langage Python
Note
Pour définir une fonction avec plusieurs paramètres, il suffit d’inclure ceux-ci entre les
parenthèses qui suivent le nom de la fonction, en les séparant à l’aide de virgules.
Lors de l’appel de la fonction, les arguments utilisés doivent être fournis dans le même
ordre que celui des paramètres correspondants (en les séparant eux aussi à l’aide de
virgules). Le premier argument sera affecté au premier paramètre, le second argument
sera affecté au second paramètre, et ainsi de suite.
def test():
b = 5
print(a, b)
a = 2
b = 7
test()
print(a, b)
2 5
2 7
4
Mouna essoufiani
Langage Python
def test():
global b
b = 5
print(a, b)
a = 2
b = 7
test()
print(a, b)
2 5
2 5
Fonctions et procédures
Pour les puristes, les fonctions que nous avons décrites jusqu’à présent ne sont pas tout à fait
des fonctions au sens strict, mais plus exactement des procédures. Une « vraie » fonction (au
sens strict) doit en effet renvoyer une valeur lorsqu’elle se termine. Une « vraie » fonction
peut s’utiliser à la droite du signe égale dans des expressions telles que y = sin(a). On
comprend aisément que dans cette expression, la fonction sin() renvoie une valeur (le sinus de
l’argument) qui est directement affectée à la variable y.
Voici un exemple extrêmement simple:
def cube(w):
return w**3
a = cube(4)
print(a)
politesse("Dupont")
politesse('Durand', 'Mademoiselle')
5
Mouna essoufiani
Langage Python
Lorsque l’on appelle cette fonction en ne lui fournissant que le premier argument, le second
reçoit tout de même une valeur par défaut. Si l’on fournit les deux arguments, la valeur par
défaut pour le deuxième est tout simplement ignorée.
print("avec parametres")
oiseau(etat="givré", voltage=250, action="vous approuver")
print("sans parametres")
oiseau()
avec parametres
Ce perroquet ne pourra pas vous approuver
si vous le branchez sur 250 volts !
L'auteur de ceci est complètement givré
sans parametres
Ce perroquet ne pourra pas danser la java
si vous le branchez sur 100 volts !
L'auteur de ceci est complètement allumé
6
Mouna essoufiani