Fonctions : Différence entre versions

De WikiMéca
Sauter à la navigation Sauter à la recherche
(Page créée avec « Une fonction exécute un certain nombre d’instructions pré-définies, à partir de certaines valeurs données (paramêtres ou arguments) et retourne (éventuellement) u... »)
 
(Documentation)
(6 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
Une fonction exécute un certain nombre d’instructions pré-définies, à partir de certaines valeurs données (paramêtres
+
Une fonction exécute un certain nombre d’instructions pré-définies, à partir de certaines valeurs données (paramêtres ou arguments) et retourne (éventuellement) une valeur.
ou arguments) et retourne (éventuellement) une valeur.
+
==Définition par le mot-clé <syntaxhighlight lang="Python" inline>def</syntaxhighlight>==
 
+
On peut définir ses propres fonctions à l’aide de la commande <syntaxhighlight lang="Python" inline>def</syntaxhighlight> en respectant la syntaxe suivante (attention aux
Certaines fonctions sont déjà définies par Python et directement accessibles : print, type, int, input...
+
indentations !) :
On peut définir ses propres fonctions à l’aide de la commande def en respectant la syntaxe suivante (attention aux
 
indentations !).
 
 
<syntaxhighlight lang="Python" line='line'>
 
<syntaxhighlight lang="Python" line='line'>
 
def fonction (p1 ,p2 ,...) :
 
def fonction (p1 ,p2 ,...) :
   """ documentation `a l’attention de l’ utilisateur """
+
   """ documentation à l’attention de l’ utilisateur """
 
   global p2 # facultatif
 
   global p2 # facultatif
   instruction1 # commentaire `a l’intention des programmeurs
+
   instruction1 # commentaire à l’intention des programmeurs
 
   instruction2 ...
 
   instruction2 ...
  
Ligne 17 : Ligne 15 :
 
'''Remarque 1 :''' On peut créer une fonction sans paramètre : nom de la fonction()
 
'''Remarque 1 :''' On peut créer une fonction sans paramètre : nom de la fonction()
  
'''Remarque 2 :''' La commande '''return''' permet de récupérer le résultat et de le stocker dans une variable si nécessaire.
+
'''Remarque 2 :''' La commande <syntaxhighlight lang="Python" inline>return</syntaxhighlight> permet de récupérer le résultat et de le stocker dans une variable si nécessaire.
  
C’est la seule valeur renvoyée par la fonction, mais si besoin cette valeur peut contenir plusieurs expressions. L’instruction
+
C’est la seule valeur renvoyée par la fonction, mais si besoin cette valeur peut contenir plusieurs expressions. L’instruction <syntaxhighlight lang="Python" inline>return</syntaxhighlight> arrête le déroulement de la fonction : le code situé ensuite ne sera pas exécuté.
return arrête le déroulement de la fonction : le code situé ensuite ne sera pas exécuté.
+
Cependant, on peut construire une fonction sans terminer par cette commande. Dans ce cas, la valeur renvoyée par la fonction est par défaut <syntaxhighlight lang="Python" inline>None</syntaxhighlight>.
Cependant, on peut construire une fonction sans terminer par cette commande. Dans ce cas, la valeur renvoyée par la
+
Une fonction peut comporter plusieurs <syntaxhighlight lang="Python" inline>return</syntaxhighlight>, par exemple à l’intérieur d’une structure conditionnelle. Dans ce cas, la fonction se finalisera au premier <syntaxhighlight lang="Python" inline>return</syntaxhighlight> rencontré, le suite du code ne sera pas compilée.
fonction est par défaut None.
+
Remarque 3 : On peut définir des paramètres par défaut. L’utilisateur n’est alors pas obligé de les donner, ils ont une valeur par défaut. Les paramètres par défaut sont toujours positionnés à la fin.  
Une fonction peut comporter plusieurs return, par exemple à l’intérieur d’une structure conditionnelle. Dans ce cas, la
 
fonction se finalisera au premier return rencontré, le suite du code ne sera pas compilée.
 
Remarque 3 : On peut définir des paramètres par défaut. L’utilisateur n’est alors pas obligé de les donner, ils ont une
 
valeur par défaut. Les paramètres par défaut sont toujours positionnés à la fin.  
 
  
 
Par exemple :
 
Par exemple :
Ligne 34 : Ligne 28 :
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Et dans l’interpréteur :
 
Et dans l’interpréteur :
<syntaxhighlight lang="Python" line='line'>
+
<pre>
 
>>> formule_politesse (’Delcroix ’)
 
>>> formule_politesse (’Delcroix ’)
 
  Veuillez agréer , Monsieur Delcroix , mes salutations respectueuses .
 
  Veuillez agréer , Monsieur Delcroix , mes salutations respectueuses .
Ligne 40 : Ligne 34 :
 
  >>> formule_politesse (’Dion ’, ’Madame ’)
 
  >>> formule_politesse (’Dion ’, ’Madame ’)
 
  Veuillez agréer , Madame Dion , mes salutations respectueuses .
 
  Veuillez agréer , Madame Dion , mes salutations respectueuses .
</syntaxhighlight>
+
</pre>
On peut aussi utiliser l’instruction lambda qui permet de créer rapidement des fonctions simples (par exemple des
+
 
 +
==Définition par le mot-clé <syntaxhighlight lang="Python" inline>lambda</syntaxhighlight>==
 +
On peut aussi utiliser l’instruction <syntaxhighlight lang="Python" inline>lambda</syntaxhighlight> qui permet de créer rapidement des fonctions simples (par exemple des
 
fonctions numériques).  
 
fonctions numériques).  
Par exemple, les lignes suivantes permettent de définir la fonction <math>f : x 7−→ x^2 + 1</math>.
+
Par exemple, les lignes suivantes permettent de définir la fonction <math>f : x \longmapsto x^2 + 1</math>.
  
 
<syntaxhighlight lang="Python" line='line'>
 
<syntaxhighlight lang="Python" line='line'>
f= lambda x : x **2+1
+
f= lambda x : x**2+1
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=== Documentation ===
+
== Documentation ==
On peut accéder à la documentation d’une fonction à l’aide de la commande help. Lorsqu’on écrit une fonction, elle peut être utilisée par d’autres personnes intervenant dans la construction d’un programme. Il est donc important de commenter cette fonction et en particulier de la documenter. La documentation permet à un utilisateur de comprendre la finalité et l’usage de la fonction. On peut ajouter une documentation entre des triples guillemets et avant le bloc d’instruction.
+
On peut accéder à la documentation d’une fonction à l’aide de la commande <syntaxhighlight lang="Python" inline>help</syntaxhighlight>. Lorsqu’on écrit une fonction, elle peut être utilisée par d’autres personnes intervenant dans la construction d’un programme. Il est donc important de commenter cette fonction et en particulier de la documenter. La documentation permet à un utilisateur de comprendre la finalité et l’usage de la fonction. On peut ajouter une documentation entre des triples guillemets et avant le bloc d’instruction.
On fera bien la distinction entre les commentaires, qui sont plutˆot à destination de celui qui écrit ou lit le programme, et la documentation qui est destinée à l’utilisateur du programme.
+
On fera bien la distinction entre les commentaires, qui sont plutôt à destination de celui qui écrit ou lit le programme, et la documentation qui est destinée à l’utilisateur du programme.
  
 
'''Exemple :''' construction d’une fonction qui pour un entier p et un entier N donnés, affiche la table de multiplication par p de 1 à N.
 
'''Exemple :''' construction d’une fonction qui pour un entier p et un entier N donnés, affiche la table de multiplication par p de 1 à N.
 
<syntaxhighlight lang="Python" line='line'>
 
<syntaxhighlight lang="Python" line='line'>
 
def table (p,N) :
 
def table (p,N) :
  """ Fonction é crivant la table de multiplication par p de 1 a N"""
+
  """ Fonction écrivant la table de multiplication par p de 1 a N"""
 
  i=1 # initialisation du compteur i
 
  i=1 # initialisation du compteur i
 
  while i <=N :
 
  while i <=N :
Ligne 64 : Ligne 60 :
  
 
Et dans l’interpréteur :
 
Et dans l’interpréteur :
<syntaxhighlight lang="Python" line='line'>
+
<pre>
 
>>> table (3 ,4)
 
>>> table (3 ,4)
 
3*1=3
 
3*1=3
Ligne 70 : Ligne 66 :
 
3*3=9
 
3*3=9
 
3*4=12
 
3*4=12
>>>help ( table )
+
>>> help ( table )
table (p,N)
+
table (p,N)
 
  Fonction écrivant la table de multiplication par p de 1 a N
 
  Fonction écrivant la table de multiplication par p de 1 a N
</syntaxhighlight>
+
</pre>

Version du 12 juillet 2019 à 11:08

Une fonction exécute un certain nombre d’instructions pré-définies, à partir de certaines valeurs données (paramêtres ou arguments) et retourne (éventuellement) une valeur.

Définition par le mot-clé def

On peut définir ses propres fonctions à l’aide de la commande def en respectant la syntaxe suivante (attention aux indentations !) :

1 def fonction (p1 ,p2 ,...) :
2    """ documentation à l’attention de l’ utilisateur """
3    global p2 # facultatif
4    instruction1 # commentaire à l’intention des programmeurs
5    instruction2 ...
6 
7    return ( resultat ) # facultatif

Remarque 1 : On peut créer une fonction sans paramètre : nom de la fonction()

Remarque 2 : La commande return permet de récupérer le résultat et de le stocker dans une variable si nécessaire.

C’est la seule valeur renvoyée par la fonction, mais si besoin cette valeur peut contenir plusieurs expressions. L’instruction return arrête le déroulement de la fonction : le code situé ensuite ne sera pas exécuté. Cependant, on peut construire une fonction sans terminer par cette commande. Dans ce cas, la valeur renvoyée par la fonction est par défaut None. Une fonction peut comporter plusieurs return, par exemple à l’intérieur d’une structure conditionnelle. Dans ce cas, la fonction se finalisera au premier return rencontré, le suite du code ne sera pas compilée. Remarque 3 : On peut définir des paramètres par défaut. L’utilisateur n’est alors pas obligé de les donner, ils ont une valeur par défaut. Les paramètres par défaut sont toujours positionnés à la fin.

Par exemple :

1 def formule_politesse (nom , genre =Monsieur ) :
2    print (Veuillez agréer ,, genre , nom , , mes salutations respectueuses .)

Et dans l’interpréteur :

>>> formule_politesse (’Delcroix ’)
 Veuillez agréer , Monsieur Delcroix , mes salutations respectueuses .

 >>> formule_politesse (’Dion ’, ’Madame ’)
 Veuillez agréer , Madame Dion , mes salutations respectueuses .

Définition par le mot-clé lambda

On peut aussi utiliser l’instruction lambda qui permet de créer rapidement des fonctions simples (par exemple des fonctions numériques). Par exemple, les lignes suivantes permettent de définir la fonction .

1 f= lambda x : x**2+1

Documentation

On peut accéder à la documentation d’une fonction à l’aide de la commande help. Lorsqu’on écrit une fonction, elle peut être utilisée par d’autres personnes intervenant dans la construction d’un programme. Il est donc important de commenter cette fonction et en particulier de la documenter. La documentation permet à un utilisateur de comprendre la finalité et l’usage de la fonction. On peut ajouter une documentation entre des triples guillemets et avant le bloc d’instruction. On fera bien la distinction entre les commentaires, qui sont plutôt à destination de celui qui écrit ou lit le programme, et la documentation qui est destinée à l’utilisateur du programme.

Exemple : construction d’une fonction qui pour un entier p et un entier N donnés, affiche la table de multiplication par p de 1 à N.

1 def table (p,N) :
2  """ Fonction écrivant la table de multiplication par p de 1 a N"""
3  i=1 # initialisation du compteur i
4  while i <=N :
5  print (p," * ", i, " = ", p*i)
6  i=i+1

Et dans l’interpréteur :

>>> table (3 ,4)
3*1=3
3*2=6
3*3=9
3*4=12
>>> help ( table )
 table (p,N)
 Fonction écrivant la table de multiplication par p de 1 a N