Une fonction est une structure qui contient un ensemble d'instructions.
Un simple appel à la fonction, à chaque fois que souhaité permet
de (re)lancer toutes ses instructions.
Une fonction peut accepter des arguments, ou variables, en entrée,
et de même en renvoyer ou non en sortie.
Définition d'une fonction
Syntaxe générale
En python, la définition se fait via le mot clé def:
L'indentation définit, comme partout en python, le corps de la fonction.
Par exemple,
def AfficheOK():
print("OK, tout va bien")
définit une fonction dont le nom est AfficheOK,
qui n'accepte pas d'argument en entrée et qui, une fois appelée,
affiche le texte "OK, tout va bien".
Cette fonction ne renvoyant aucune valeur s'appelle aussi dans
la terminologie de la programmation une routine.
Cette fonction s'utilise simplement en l'appelant grâce à son nom,
à chaque fois que souhaité, après sa défintion.
AfficheOK()
qui affiche donc OK, ….
Les parenthèses sont obligatoires lors de l'appel de la fonction,
même si elles sont vides, comme ici, en l'abscence d'arguments.
Argument d'entrée
On peut définir des fonctions qui dépendent, donc agissent différemment selon,
de paramètres.
Par exemple,
def AfficheOK(txt):
print("OK, tout va ",txt)
s'utilise suivant
AfficheOK("bien")
# affiche: OK, tout va bien
AfficheOK("mal")
# affiche: OK, tout va mal
AfficheOK(3)
# affiche: OK, tout va 3
Par contre maintenant l'appel de la fonction sans argument
renvoie une erreur:
Une telle fonction, avec exactement un argument numérique en entrée
et qui renvoie une valeur numérique en sortie, est une fonction mathématique
telle que définie et vue au lycée.
On n'est pas limité aux valeurs numériques, et on peut utiliser toutes les opérations
et structures permises par python dans le corps d'une fonction.
Par exemple, en reprenant la fonction AfficheOK() précédente,
on peut faire un traitement conditionnel suivant l'argument d'entrée
def AfficheOK(txt):
if(txt=="bien"):
y="OK, tout va bien"
elif(txt=="mal"):
y="Mal, tout va mal"
else:
y="Bof, c'est pas clair"
return y
y=AfficheOK("bien")
print(y)
# affiche: OK, tout va bien
y=AfficheOK("mal")
print(y)
# affiche: Mal, tout va mal
y=AfficheOK(3)
print(y)
# affiche: Bof, c'est pas clair
On sort bien sûr là des fonctions mathématiques numériques du lycée.
Fonction avec plusieurs argument
On peut définir des fonctions qui acceptent plusieurs argument en entrée,
par exemple
def f(x,y):
z=x*y
return z
z=f(2,3)
# z vaut maintenant 6
Ces multiples arguments ne sont d'ailleurs pas forcément du même type: