Les fonctions☘
type()
, int()
, str()
, etc... sont des fonctions prédéfinies en Python. Comme tous les autres langages de programmation, Python permet aussi de définir ses propres fonctions.
Cela permet d'effectuer (ou d'adapter) la même suite d'instructions à différents endroits d'un programme sans recopier plusieurs fois les mêmes « bouts » de code. En quelque sorte, une fonction est un sous-programme.
Les programmes complexes deviennent ainsi plus courts et plus lisibles.
Définir une fonction☘
En Python, on définit une fonction à l'aide du mot-clef def
.
Toutes les fonctions devront être définies sous la forme générique suivante (le nombre de paramètres peut bien sûr être différent de 2) :
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Remarque
Comme pour les variables, le nom choisi pour la fonction doit être explicite (c'est à dire correspondre à son rôle).
Exemple☘
-
Complétez la définition de la fonction
Puis3()
qui doit renvoyer le cube de la valeur (numérique) saisie en paramètre.1 2 3 4 5 6 7
def Puis3(nb): """ nb - float (ou int) Sortie : float (ou int), le cube de nb """ y = return
Une solution possible
1 2 3 4 5 6 7
def Puis3(nb): """ nb - float (ou int) Sortie : float (ou int), le cube de nb """ cube = nb*nb*nb return cube
Une autre solution
1 2 3 4 5 6
def Puis3(nb): """ nb - float (ou int) Sortie : float (ou int), le cube de nb """ return nb*nb*nb
-
Utilisez cette fonction dans la console.
Solution pas à pas
-
On enregistre le code de cette fonction dans un éditeur, par exemple Pyzo, en le nommant
exemple_cube.py
(ou tout autre nom) : -
En essayant d'utiliser directement la fonction
Puis3()
dans la console, celle-ci renvoie un message d'erreur :>>> Puis3(2.5) NameError: name 'Puis3' is not defined
-
On exécute ce code avec la touche
[F5]
, la console met en mémoire le contenu du fichierexemple_cube.py
:>>> (executing file "exemple_cube.py")
-
On peut à présent utiliser la fonction
Puis3()
définie dans ce script :>>> Puis3(2.5) 15.625
-
Préconditions☘
On appelle « Préconditions » les conditions à respecter par les paramètres d'une fonction pour que les instructions effectuées par cette fonction aient un sens. Ces préconditions sont données par le cahier des charges du programme et sont rappelées dans le docstring.
Vocabulaire
Le docstring (on peut traduire par « chaîne de caractères de documentation ») est la partie située entre les triples guillemets « """
» et « """
» :
1 2 3 4 5 6 7 8 |
|
Ce docstring présente au moins la forme minimale donnée ci-dessus. Il spécifie la fonction, c'est-à-dire :
- décrit les paramètres (leur type) ;
- les préconditions éventuelles sur ces paramètres ;
- le type de la sortie ainsi que son lien avec les paramètres.
Fonction help()
☘
La fonction help()
permet d'afficher dans la console le docstring de la fonction passée en paramètre. Cela permet de comprendre les spécifications d'une fonction codée par quelqu'un d'autre et évite de lire l'intégralité du fichier informatique (qui peut contenir plusieurs milliers de lignes) dans lequel cette fonction est définie.
-
On enregistre la fonction dans un fichier nommé
exemple_help.py
:1 2 3 4 5 6
def Puis3(nb): """ nb - float (ou int) Sortie : float (ou int), le cube de nb """ return nb*nb*nb
-
On exécute ce fichier, la console redémarre :
>>> RESTART --- exemple_help.py ---
-
On applique la fonction
help()
à la fonctionPuis2()
:>>> help(Puis3) Help on function Puis3 in module __main__: Puis3(nb) nb - float (ou int) Sortie : float (ou int), le cube de nb (END)