Algorithmique et Programmation : =1=Fonctions et … · Algorithmique et Programmation : Fonctions...

of 144 /144
Fonctions Procédure Fonctions et Procédure en Python Module Algorithmique et Programmation : Fonctions et Procédures E. M. Souidi Faculté des Sciences - Rabat SVI4 –STU4 2013-14 E. M. Souidi Cours informatique 2 SVI4 –STU4 2013-14

Embed Size (px)

Transcript of Algorithmique et Programmation : =1=Fonctions et … · Algorithmique et Programmation : Fonctions...

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Algorithmique et Programmation :Fonctions et Procdures

    E. M. Souidi

    Facult des Sciences - RabatSVI4 STU4 2013-14

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Introduction

    En algorithmique il existe deux types de sous-programmes : lesfonctions et les procdures.

    Ces notions sont prsentes danstout les langages de programmation.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Introduction

    En algorithmique il existe deux types de sous-programmes : lesfonctions et les procdures. Ces notions sont prsentes danstout les langages de programmation.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Lobjectif de ces notions est de structurer son programme en unensemble de sous-programmes rsolvant chacun unsous-problme particulier.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Par exemples

    Il arrive souvent dans un programme davoir besoin dune tche appliquer plusieurs fois.

    Par exemples :- calculer la moyenne de chaque tudiant.- attribuer la mention etc...

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Par exemples

    Il arrive souvent dans un programme davoir besoin dune tche appliquer plusieurs fois.Par exemples :

    - calculer la moyenne de chaque tudiant.- attribuer la mention etc...

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Par exemples

    Il arrive souvent dans un programme davoir besoin dune tche appliquer plusieurs fois.Par exemples :- calculer la moyenne de chaque tudiant.

    - attribuer la mention etc...

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Par exemples

    Il arrive souvent dans un programme davoir besoin dune tche appliquer plusieurs fois.Par exemples :- calculer la moyenne de chaque tudiant.- attribuer la mention etc...

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Ce serai trs long dcrire pour chaque tudiant unsous-programme qui calcule sa moyenne.

    Dautant plus que cest le mme sous programme.Solution :crire ce sous-programme une seule fois et le rutiliser autantde fois que cest ncessaire.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Ce serai trs long dcrire pour chaque tudiant unsous-programme qui calcule sa moyenne.Dautant plus que cest le mme sous programme.

    Solution :crire ce sous-programme une seule fois et le rutiliser autantde fois que cest ncessaire.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Ce serai trs long dcrire pour chaque tudiant unsous-programme qui calcule sa moyenne.Dautant plus que cest le mme sous programme.Solution :crire ce sous-programme une seule fois et le rutiliser autantde fois que cest ncessaire.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Dfinition dune fonction

    Une fonction est un petit sous-programme qui :

    - accepte ventuellement des arguments ;- effectue une squence dinstructions utilisant ces arguments ;

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Dfinition dune fonction

    Une fonction est un petit sous-programme qui :- accepte ventuellement des arguments ;

    - effectue une squence dinstructions utilisant ces arguments ;

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Dfinition dune fonction

    Une fonction est un petit sous-programme qui :- accepte ventuellement des arguments ;- effectue une squence dinstructions utilisant ces arguments ;

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    - retourne une valeur simple calcule par cette squencedinstructions.

    - utilisable autant de fois que ncessaire.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    - retourne une valeur simple calcule par cette squencedinstructions.- utilisable autant de fois que ncessaire.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Deux types de fonctions

    Tout langage de programmation propose un certain nombre defonctions prdfinies.

    Exemple de fonctions prdfinies en Python : range(), len(),type() etc..

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Deux types de fonctions

    Tout langage de programmation propose un certain nombre defonctions prdfinies.Exemple de fonctions prdfinies en Python : range(), len(),type() etc..

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Les fonctions dfinies par lutilisateur.

    Cest ce type va nous intresser dans ce chapitre.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Les fonctions dfinies par lutilisateur.Cest ce type va nous intresser dans ce chapitre.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Pourquoi les fonctions ?

    Les fonctions sont utilises pour :

    - rendre le programme mieux structur et plus lisible ;- viter dcrire plusieurs fois les mmes portions de code ;

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Pourquoi les fonctions ?

    Les fonctions sont utilises pour :- rendre le programme mieux structur et plus lisible ;

    - viter dcrire plusieurs fois les mmes portions de code ;

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Pourquoi les fonctions ?

    Les fonctions sont utilises pour :- rendre le programme mieux structur et plus lisible ;- viter dcrire plusieurs fois les mmes portions de code ;

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    - tre ventuellement sauvegardes dans des bibliothques et utiliser dans dautres programmes.

    Il est toujours conseill dcrire son programme avec plusieursfonctions (simples).

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    - tre ventuellement sauvegardes dans des bibliothques et utiliser dans dautres programmes.Il est toujours conseill dcrire son programme avec plusieursfonctions (simples).

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Fonctions en pseudo-code

    fonction NomFonction(arg1, arg2, ...)commentaires dcrivant la fonctionDbutsquence dinstructionsvaleur retournerFin

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Appel de fonctions

    Les fonctions sont gnralement dfinies au dbut duprogramme (principal).

    Il est possible de les appeler par leursnoms nimporte o dans le programme en spcifiant leursarguments (et leurs types).

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Appel de fonctions

    Les fonctions sont gnralement dfinies au dbut duprogramme (principal). Il est possible de les appeler par leursnoms nimporte o dans le programme en spcifiant leursarguments (et leurs types).

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Les valeurs retournes par les fonctions peuvent tre utilisesdans le reste des instructions ou expressions du programme.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Remarque

    Lappel de fonctions nest pas limite au programme principal, ilest possible dappeler une fonction depuis une autre fonction.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Variables dans une fonction

    Plusieurs fonctions peuvent partager des variables communesquon qualifie alors de variables globales.

    Une variable est dite locale si elle est dfinie au sein dunefonction et nest pas reconnue lextrieur de cette fonction. Saporte est donc limite cette fonction.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Variables dans une fonction

    Plusieurs fonctions peuvent partager des variables communesquon qualifie alors de variables globales.Une variable est dite locale si elle est dfinie au sein dunefonction et nest pas reconnue lextrieur de cette fonction. Saporte est donc limite cette fonction.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Procdures

    Il se peut que dans un programme, on ait raliser des tchesrptitives, mais que ces tches naient pas pour rle degnrer une valeur particulire (effacer lcran, afficher unlogo), ou quelles aient pour rle de gnrer plusieurs valeurs.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Une fonction ne peut ni effacer lcran ni afficher un logo. Unefonction retourne une seule valeur.

    La notion de procdure (on parle aussi de sous-programme.)gnralise celle de fonction.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Une fonction ne peut ni effacer lcran ni afficher un logo. Unefonction retourne une seule valeur.La notion de procdure (on parle aussi de sous-programme.)gnralise celle de fonction.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Dfinition de procdure

    Une procdure est une suite dactions dsigne par un nom,dfinie une fois dans un programme et pouvant tre appeleplusieurs fois dans ce programme, ou sauvegarde dans unebibliothque pour lutiliser dans dautres algorithmes.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Rle des procdures

    - viter les rptitions inutiles de code.

    - structurer le programme en isolant des fonctionnalitsspcifiques dans des procdures spares.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Rle des procdures

    - viter les rptitions inutiles de code.- structurer le programme en isolant des fonctionnalitsspcifiques dans des procdures spares.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    - partager le travail entre programmeurs lors de la rsolutiondun problme informatique complexe.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Procdure en pseudo-code

    commentaires dcrivant la fonctionPour dfinir une procdureProcdure maprocdure( ... )

    suite dactionsFin ProcdurePour lutiliser lappeler par

    maprocdure ( ... )

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Procdure en pseudo-code

    commentaires dcrivant la fonctionPour dfinir une procdureProcdure maprocdure( ... )

    suite dactionsFin ProcdurePour lutiliser lappeler parmaprocdure ( ... )

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Remarque

    La valeur retourne par une fonction est toujours affecte unevariable.

    Lappel dune procdure, lui, est au contraire toujours uneinstruction autonome. Cest un ordre qui se suffit lui-mme.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Remarque

    La valeur retourne par une fonction est toujours affecte unevariable.Lappel dune procdure, lui, est au contraire toujours uneinstruction autonome. Cest un ordre qui se suffit lui-mme.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Paramtres dune procdure

    Pour une fonction on parle darguments et pour une procdureon parle de paramtres en entre et de paramtres en sortie.

    Toute procdure possdant un et un seul paramtre en sortiepeut galement tre crite sous forme dune fonction.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Paramtres dune procdure

    Pour une fonction on parle darguments et pour une procdureon parle de paramtres en entre et de paramtres en sortie.Toute procdure possdant un et un seul paramtre en sortiepeut galement tre crite sous forme dune fonction.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Dans la plupart des langages, on ne parlera pas de paramtres"en entre" ou "en sortie", mais de paramtres transmis :

    - par valeur (correspondant un paramtre en entre)- par rfrence (correspondant un paramtre en sortie)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Dans la plupart des langages, on ne parlera pas de paramtres"en entre" ou "en sortie", mais de paramtres transmis :- par valeur (correspondant un paramtre en entre)

    - par rfrence (correspondant un paramtre en sortie)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Dans la plupart des langages, on ne parlera pas de paramtres"en entre" ou "en sortie", mais de paramtres transmis :- par valeur (correspondant un paramtre en entre)- par rfrence (correspondant un paramtre en sortie)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Dans la plupart des langages, on ne parlera pas de paramtres"en entre" ou "en sortie", mais de paramtres transmis :- par valeur (correspondant un paramtre en entre)- par rfrence (correspondant un paramtre en sortie)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Conclusion

    Une procdure est un morceau de programme qui comporteventuellement des paramtres en entre (transmis par valeur)et des paramtres en sortie (transmis par rfrence).

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Porte de variables

    Une variable peut tre dclare :

    Comme locale (le cas le plus utilis). Une telle variabledisparat (et sa valeur avec) ds que prend fin la procdure ouelle a t cre.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Porte de variables

    Une variable peut tre dclare :Comme locale (le cas le plus utilis). Une telle variabledisparat (et sa valeur avec) ds que prend fin la procdure ouelle a t cre.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Comme globale. une telle variable est conserve intacte pourtoute lapplication, et conserve sa valeur et peut tre traite pardiffrentes procdures du programme.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    En pseudo-code

    On peut utiliser le mot-cl global pour dclarer une variableglobale :

    Variable globale x.Une variable globale consomme normment de ressources enmmoire.On ne dclare alors comme global quune variable qui doitltre absolument .

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    En pseudo-code

    On peut utiliser le mot-cl global pour dclarer une variableglobale :Variable globale x.

    Une variable globale consomme normment de ressources enmmoire.On ne dclare alors comme global quune variable qui doitltre absolument .

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    En pseudo-code

    On peut utiliser le mot-cl global pour dclarer une variableglobale :Variable globale x.Une variable globale consomme normment de ressources enmmoire.

    On ne dclare alors comme global quune variable qui doitltre absolument .

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    En pseudo-code

    On peut utiliser le mot-cl global pour dclarer une variableglobale :Variable globale x.Une variable globale consomme normment de ressources enmmoire.On ne dclare alors comme global quune variable qui doitltre absolument .

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Structure gnrale dune application

    Une application est couramment forme dun programmeprincipal, de fonctions et de procdures gnralement placesau dbut du programme.

    Lexemple typique est celui dun menu, ou chaque traitementest ralis par une ou plusieurs procdures ou fonctions.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Structure gnrale dune application

    Une application est couramment forme dun programmeprincipal, de fonctions et de procdures gnralement placesau dbut du programme.Lexemple typique est celui dun menu, ou chaque traitementest ralis par une ou plusieurs procdures ou fonctions.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Structure dun programme

    Un programme est en gnral structur de la faon suivante :

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Nom du programme

    Dfinition des constantes et types

    Dclaration des variables globales

    Fonctions et procdures

    dbut

    instructions du programme principal

    (Appels des fonctions et procdures)

    fin

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Fonctions et Procdure en Python

    Sous Python, le terme de fonction est utilis indiffremmentpour dsigner la fois des fonctions mais galement desprocdures. Python utilise la mme instruction def pour dfinirles unes et les autres.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Dans certains langages de programmation, les fonctions et lesprocdures sont dfinies laide dinstructions diffrentes.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    En Python la description du rle dune fonction est mis entre """...""". Ne jamais oublier cette description.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Fonction en Pythondef NomFonction(arg1, arg2, ..., argN) :""" Description de cette fonction """

    instructionsreturn valeur

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Exemple

    Construisons une fonction avec Python qui dtermine leminimum de deux lments :

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Exemple

    def min(x,y) :

    """ retourne le min des nombres x et y """ \par \pause

    if ( x $

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Comment utiliser une fonction ?

    il suffit de lappeler par son nom en indiquant entreparenthses ses arguments.

    >>> min(45.0,0)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Comment utiliser une fonction ?

    il suffit de lappeler par son nom en indiquant entreparenthses ses arguments.>>> min(45.0,0)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Exemple

    def intersect(L1, L2):

    """Retourne l'intersection de listes"""

    resultat = [ ] # une liste vide

    for x in L1:

    if x in L2:

    resultat.append(x)

    return resultat

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Fonction imbriques

    Lappel de fonctions nest pas limit au programme principal, ilest possible dappeler une fonction depuis une autre fonction.Par exemple :

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Exemple

    def min3(x,y,z) :

    """retourne le min de 3 nombres """

    return min(min(x,y),z)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Variable globale ou locale

    Les variables affectes hors de toute fonction sont globales,cest dire quelles sont reconnues aussi lintrieur desfonctions :

    >>> def test(x) :return x*i

    >>> i=9>>> test(8)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Variable globale ou locale

    Les variables affectes hors de toute fonction sont globales,cest dire quelles sont reconnues aussi lintrieur desfonctions :

    >>> def test(x) :return x*i

    >>> i=9>>> test(8)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Variable globale ou locale

    Les variables affectes hors de toute fonction sont globales,cest dire quelles sont reconnues aussi lintrieur desfonctions :>>> def test(x) :

    return x*i>>> i=9>>> test(8)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Variable globale ou locale

    Les variables affectes hors de toute fonction sont globales,cest dire quelles sont reconnues aussi lintrieur desfonctions :>>> def test(x) :

    return x*i

    >>> i=9>>> test(8)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Variable globale ou locale

    Les variables affectes hors de toute fonction sont globales,cest dire quelles sont reconnues aussi lintrieur desfonctions :>>> def test(x) :

    return x*i>>> i=9

    >>> test(8)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Variable globale ou locale

    Les variables affectes hors de toute fonction sont globales,cest dire quelles sont reconnues aussi lintrieur desfonctions :>>> def test(x) :

    return x*i>>> i=9>>> test(8)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Variable globale ou locale

    Les variables affectes hors de toute fonction sont globales,cest dire quelles sont reconnues aussi lintrieur desfonctions :>>> def test(x) :

    return x*i>>> i=9>>> test(8)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Il est toutefois possible daffecter une variable dans unefonction, tout en prcisant que cette variable sera connue lextrieur de la fonction.

    Pour cela, il suffit, avant la premire utilisation de la variable,dannoncer quelle sera globale :

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Il est toutefois possible daffecter une variable dans unefonction, tout en prcisant que cette variable sera connue lextrieur de la fonction.Pour cela, il suffit, avant la premire utilisation de la variable,dannoncer quelle sera globale :

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Il est toutefois possible daffecter une variable dans unefonction, tout en prcisant que cette variable sera connue lextrieur de la fonction.Pour cela, il suffit, avant la premire utilisation de la variable,dannoncer quelle sera globale :

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Exemple

    def fonction(x) :

    """fonction avec variable globale i"""

    global i

    i=2

    return x+2

    print fonction(4)

    print i

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Fonctions avec un nombre variable darguments

    En Python, il est possible de prciser quune fonction accepteplusieurs arguments sans en prciser ncessairement lenombre lavance.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Il suffit pour cela dutiliser le caractre * suivi du nom dunargument, qui sera dans la fonction considr comme un tuple :

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Exemple

    def moyenne(*arguments) :

    """calcule la moyenne"""

    somme=0

    for nbre in arguments:

    somme=somme+nbre

    return somme/float(len(arguments))

    moyenne(3,5,7)

    moyenne(2,10,13,17,20)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Fonctions rcursives

    On peut dfinir une fonction de faon rcursive (elle fait appel elle mme). Factorielle est une fonction rcursive :

    Fact(n) = n fact(n 1)

    En Python

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    def fact(n) :

    if n

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Application dune fonction une liste

    Pour appliquer une fonctions tous les lments dune liste onutilise la fonction prdfinie map dont la syntaxe est :

    >>> map(fonction,liste)et pour afficher le resultat :>>> L = map(fonction,liste)>>> list(L)Cette fonction doit tre dfinie avant de faire appel la fonctionmap.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Application dune fonction une liste

    Pour appliquer une fonctions tous les lments dune liste onutilise la fonction prdfinie map dont la syntaxe est :

    >>> map(fonction,liste)et pour afficher le resultat :>>> L = map(fonction,liste)>>> list(L)Cette fonction doit tre dfinie avant de faire appel la fonctionmap.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Application dune fonction une liste

    Pour appliquer une fonctions tous les lments dune liste onutilise la fonction prdfinie map dont la syntaxe est :>>> map(fonction,liste)

    et pour afficher le resultat :>>> L = map(fonction,liste)>>> list(L)Cette fonction doit tre dfinie avant de faire appel la fonctionmap.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Application dune fonction une liste

    Pour appliquer une fonctions tous les lments dune liste onutilise la fonction prdfinie map dont la syntaxe est :>>> map(fonction,liste)

    et pour afficher le resultat :>>> L = map(fonction,liste)>>> list(L)Cette fonction doit tre dfinie avant de faire appel la fonctionmap.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Application dune fonction une liste

    Pour appliquer une fonctions tous les lments dune liste onutilise la fonction prdfinie map dont la syntaxe est :>>> map(fonction,liste)et pour afficher le resultat :

    >>> L = map(fonction,liste)>>> list(L)Cette fonction doit tre dfinie avant de faire appel la fonctionmap.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Application dune fonction une liste

    Pour appliquer une fonctions tous les lments dune liste onutilise la fonction prdfinie map dont la syntaxe est :>>> map(fonction,liste)et pour afficher le resultat :

    >>> L = map(fonction,liste)>>> list(L)Cette fonction doit tre dfinie avant de faire appel la fonctionmap.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Application dune fonction une liste

    Pour appliquer une fonctions tous les lments dune liste onutilise la fonction prdfinie map dont la syntaxe est :>>> map(fonction,liste)et pour afficher le resultat :>>> L = map(fonction,liste)

    >>> list(L)Cette fonction doit tre dfinie avant de faire appel la fonctionmap.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Application dune fonction une liste

    Pour appliquer une fonctions tous les lments dune liste onutilise la fonction prdfinie map dont la syntaxe est :>>> map(fonction,liste)et pour afficher le resultat :>>> L = map(fonction,liste)>>> list(L)

    Cette fonction doit tre dfinie avant de faire appel la fonctionmap.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Application dune fonction une liste

    Pour appliquer une fonctions tous les lments dune liste onutilise la fonction prdfinie map dont la syntaxe est :>>> map(fonction,liste)et pour afficher le resultat :>>> L = map(fonction,liste)>>> list(L)Cette fonction doit tre dfinie avant de faire appel la fonctionmap.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    def carre(i) :

    return i*i>>> map(carre,[2,4,5])

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    def carre(i) :return i*i

    >>> map(carre,[2,4,5])

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    def carre(i) :return i*i

    >>> map(carre,[2,4,5])

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    def carre(i) :return i*i

    >>> map(carre,[2,4,5])

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Applications de fonctions des listes : le filtrage

    La fonction prdfinie filter dont la syntaxe estfilter(fonction, Liste) retourne une liste forme deslments x de Liste pour lesquels fonction(x) est vrai.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    exemple

    def f(x) : return x % 2 != 0 and x % 3 != 0

    filter(f, range(2,25))

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Applications des fonctions des listes : la rduction

    Syntaxe : reduce(fonction,liste)

    La fonction prdfinie reduce permet dappliquer fonction auxlments de liste, suivant le schma suivant :

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Applications des fonctions des listes : la rduction

    Syntaxe : reduce(fonction,liste)La fonction prdfinie reduce permet dappliquer fonction auxlments de liste, suivant le schma suivant :

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    on calcule

    val0=fonction(liste[0],liste[1]),val1=fonction(val0,liste[2]),val2=fonction(val1,liste[3]), ...

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    on calcule

    val0=fonction(liste[0],liste[1]),val1=fonction(val0,liste[2]),val2=fonction(val1,liste[3]), ...

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    on calculeval0=fonction(liste[0],liste[1]),

    val1=fonction(val0,liste[2]),val2=fonction(val1,liste[3]), ...

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    on calculeval0=fonction(liste[0],liste[1]),val1=fonction(val0,liste[2]),

    val2=fonction(val1,liste[3]), ...

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    on calculeval0=fonction(liste[0],liste[1]),val1=fonction(val0,liste[2]),val2=fonction(val1,liste[3]), ...

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    on calculeval0=fonction(liste[0],liste[1]),val1=fonction(val0,liste[2]),val2=fonction(val1,liste[3]), ...

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Exemple

    def minimum(i,j) :

    if i $

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Exemple

    def maximum(i,j) :

    if i > j :

    return i

    else :

    return j

    Liste=[8, 2, 6, 3, 1, 5, 13, -8, 15, 9]

    reduce(minimum,liste)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Exercice

    En utilisant la fonction reduce, rcrivez la fonction moyennequi calcule la moyenne dun nombre quelconque dlmentsdune liste.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Documentation sur une fonction

    Le nom dune fonction nest pas suffisant pour la dcrire ainsique le type et le nombre darguments auxquels elle sapplique.

    Pour cela en dfinissant une fonction on doit inclure laidecomplte entre """ """ juste aprs la ligne contenant def

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Documentation sur une fonction

    Le nom dune fonction nest pas suffisant pour la dcrire ainsique le type et le nombre darguments auxquels elle sapplique.Pour cela en dfinissant une fonction on doit inclure laidecomplte entre """ """ juste aprs la ligne contenant def

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Exemple

    def mafonction():

    """cette fonction est bien documente mais ne dit que bonjour"""

    print " bonjour "

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Aide sur une fonction

    Pour accder laide dune fonction prdfinie ou dfinie parlutilisateur ou quon vient de dfinir, il suffit de tapper.

    print mafonction.__doc__

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Aide sur une fonction

    Pour accder laide dune fonction prdfinie ou dfinie parlutilisateur ou quon vient de dfinir, il suffit de tapper.print mafonction.__doc__

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Module

    Un module en Python est un ensemble de fonctions rangesdans un fichier dextension .py concernant un domaine prcisdes sciences (maths, lectricit, etc) que lon peut rutilisersouvent.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    La plupart des modules de Python sont installs avec lesversions standards de Python. Dautres sont tlchargeablesde linternet. Les modules sont crits par des bnivoles et sontpublis sous la licence GPL (libre).

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Exemple de modules

    - le module math dfini les fonctions mathmatiques sin, cos, lnetc.

    - le module os (operating system, systme dexpoitation) dfinides fonctions pour crer des rpertoires, les supprimer, etc

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Exemple de modules

    - le module math dfini les fonctions mathmatiques sin, cos, lnetc.- le module os (operating system, systme dexpoitation) dfinides fonctions pour crer des rpertoires, les supprimer, etc

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    - le module turtle dfini des fonctions pour dessiner des formesgomtriques : droites, rectangle, ellipse etc.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Il y a plusieurs modules. Voir laide de Python pour la listecomplte des modules : lancer Python IDLE (GUI) et dansmenu ouvrir Help puis Python, Docs et Global Module Index.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    La liste actualise se trouve sur :http://www.python.org/doc/current/ modindex.html

    Lutilisateur peut dfinir dautres modules et les publier sur lenet.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    La liste actualise se trouve sur :http://www.python.org/doc/current/ modindex.html

    Lutilisateur peut dfinir dautres modules et les publier sur lenet.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Au lancement de Python, les modules et les fonctions quilsdfinissent ne sont pas chargs automatiquement.

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Comment charger un module ?

    Il suffit de le charger laide de la fonction import.

    import math

    Et pour charger une fonction prcise dun module :from module import fonction

    from math import cos

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Comment charger un module ?

    Il suffit de le charger laide de la fonction import.import math

    Et pour charger une fonction prcise dun module :from module import fonction

    from math import cos

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Comment charger un module ?

    Il suffit de le charger laide de la fonction import.import math

    Et pour charger une fonction prcise dun module :

    from module import fonction

    from math import cos

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Comment charger un module ?

    Il suffit de le charger laide de la fonction import.import math

    Et pour charger une fonction prcise dun module :from module import fonction

    from math import cos

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Comment charger un module ?

    Il suffit de le charger laide de la fonction import.import math

    Et pour charger une fonction prcise dun module :from module import fonction

    from math import cos

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Comment charger un module ?

    Et pour charger toutes les fonctions dun module :

    from module import *

    from math import *

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Comment charger un module ?

    Et pour charger toutes les fonctions dun module :from module import *

    from math import *

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Comment charger un module ?

    Et pour charger toutes les fonctions dun module :from module import *

    from math import *

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Comment dcharger un module ?

    Pour vider de la mmoire un module dj charg, on utiliselinstruction del :

    del module

    del math

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Comment dcharger un module ?

    Pour vider de la mmoire un module dj charg, on utiliselinstruction del :del module

    del math

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Comment dcharger un module ?

    Pour vider de la mmoire un module dj charg, on utiliselinstruction del :del module

    del math

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Aide sur un module

    Pour avoir la description dun module : les fonctions quilcontient, la syntaxe, et laide sur chacune dentre elles, oncharge le module et on utilise help.

    import module

    help(module)

    import math

    help(math)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Aide sur un module

    Pour avoir la description dun module : les fonctions quilcontient, la syntaxe, et laide sur chacune dentre elles, oncharge le module et on utilise help.import module

    help(module)

    import math

    help(math)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Aide sur un module

    Pour avoir la description dun module : les fonctions quilcontient, la syntaxe, et laide sur chacune dentre elles, oncharge le module et on utilise help.import module

    help(module)

    import math

    help(math)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Aide sur un module

    Pour avoir la description dun module : les fonctions quilcontient, la syntaxe, et laide sur chacune dentre elles, oncharge le module et on utilise help.import module

    help(module)

    import math

    help(math)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

  • FonctionsProcdure

    Fonctions et Procdure en PythonModule

    Aide sur un module

    Pour avoir la description dun module : les fonctions quilcontient, la syntaxe, et laide sur chacune dentre elles, oncharge le module et on utilise help.import module

    help(module)

    import math

    help(math)

    E. M. Souidi Cours informatique 2 SVI4 STU4 2013-14

    FonctionsProcdureFonctions et Procdure en PythonModule