Les fonctions permettent de regrouper plusieurs instructions dans un bloc qui sera appelé grâce à un nom.
Le début de la fonction correspond à sa définition et commence donc toujours par def.
Une fonction peut prendre un ou plusieurs paramètres de n'importe quel type mais aussi aucun paramètre.
Return permet de renvoyer une ou plusieurs grandeurs de n'importe quel type mais une fonction ne renvoie pas nécessairement quelque chose.
Attention à bien respecter l'indentation qui délimite le bloc fonction, la syntaxe est donc la suivante :
def NomDeLaFonction (paramètre1, paramètre2,...) :
# définie la fonction NomDeLaFonction qui dépend des paramètres 1, 2,... créés en mémoire le temps de l'exécution de la fonction.
# Les noms choisis dans la fonction pour ces paramètres ne sont donc à priori pas les mêmes dans le programme principal.
# Ces paramètres sont donc perdus ensuite tout comme les autres valeurs créés dans les instructions de la fonction.
# Il faut donc utiliser return si l'on veut garder en mémoire les valeurs créés dans les instructions de la fonction.
instruction 1
a = instruction 2 # une variable "a" est ici créé le temps de l'exécution de la fonction
return a # "a" est renvoyé dans le programme principal et l'espace mémoire créé pour "a" est libéré.
L'appel à cette fonction se ferait de la manière suivante dans le programme principal :
resultat=NomDeLaFonction( var1, var2, var3)
# "resultat" est créé en mémoire et var1,2 et 3 sont envoyés dans la fonction qui va elle-même créé "a" qu'elle renvoie au programme principal
# "resultat" prend la valeur de "a" puis a disparaît
Plusieurs fonctions peuvent être regroupé dans un fichier MonFichierDeFonctions.py appelé module.
Ces fonctions peuvent ensuite être utiliser dans un programme quelconque après avoir importé le module :
from MonFichierDeFonctions import NomDeLaFontion (ou from MonFichierDeFonctions import * pour importer l'ensemble des fonctions)
Les modules (FichiersDeFonctions.py) peuvent être regroupé dans des dossiers que l'on appelle packages.
On peut aussi importer d'un coup toutes les fonctions de tous les modules d'un package MonDossierDeModules
import MonDossierDeModules
ou pour importer la fonction NomDeLaFontion du module MonFichierDeFonctions.py rangé dans le dossier (qui forme un package) MonFichierDeFonctions :
from MonDossierDeModules.MonFichierDeFonctions import NomDeLaFontion
Sur Openclassroom : les fonctions
Faire l'exercice 4 de la section "Exercices" qui utilise la notion de fonctions et d'exceptions de la section Exercices
Lire le résumé et faire les exercices (à mettre dans le casier de collecte dans ENTEA) sur ISN-Marchal : les fonctions