Les fonctions utilisent des variables comme arguments (ou paramètres). Lorsque la fonction est appelée  dans le programme principale, on lui donne ces variables, on parle de passage d'arguments à la fonction ( voir par exemple : http://pise.info/algo/procedures.htm ).

 

Mais attention, par défaut, les variables utilisées ne sont modifiées (ou alors il faut utiliser des variables globales) ou d'autres crées (ou alors faire un "return") que dans la fonction et pas dans le programme principal. On parle de portée de variables. (sur Openclassroom : https://openclassrooms.com/courses/apprenez-a-programmer-en-python/portee-des-variables-et-references)

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

Free Joomla! template by L.THEME