[section label= »Introduction » anchor= »introduction »]
Introduction
Les fonctions permettent de regrouper plusieurs instructions dans un bloc qui sera appelé par un nom.
[alert variation= »alert-danger »]Il s’agit d’un concept essentiel en programmation objet ![/alert]
[section label= »Création de fonctions » anchor= »creation »]
Création de fonctions
Nomenclature
1 2 | def nomDeLaFonction(parametre1, parametre2, parametreN): # Bloc d'instructions |
Avec:
- def : Abréviation de “define” (« définir », en anglais), prélude à toute construction de fonctions
- Une fonction se nomme exactement comme une variable
- Ne pas utiliser un nom de fonction ou variable déjà existante (noms uniques)
- Les paramètres sont séparés par des virgules
- La liste des paramètres est encadrée par des parenthèses
- Les parenthèses sont OBLIGATOIRES même s’il n’y a pas de paramètres
- Toujours et encore “:” pour clôturer la ligne
Exemple: La table de 7
1 2 3 4 5 6 7 8 | # Definition de la fonction def tableDe7(): # Instruction de la fonction nbr = 7 for i in range(11): print "%i * %i = %i" % (i, nbr, i*nbr) # Appel de la fonction tableDe7() |
1 * 7 = 7
2 * 7 = 14
3 * 7 = 21
4 * 7 = 28
5 * 7 = 35
6 * 7 = 42
7 * 7 = 49
8 * 7 = 56
9 * 7 = 63
10 * 7 = 70
[section label= »Les paramètres » anchor= »parametres »]
Les paramètres
1 2 3 4 5 6 7 | # Definition de la fonction avec 1 parametre def table(nbr): # Instruction de la fonction for i in range(11): print "%i * %i = %i" % (i, nbr, i*nbr) # Appel de la fonction avec comme parametre "8" table(8) |
1 2 3 4 5 6 7 | # Definition de la fonction avec 2 parametres def table(nbr, limite): # Instruction de la fonction for i in range(limite + 1): print "%i * %i = %i" % (i, nbr, i*nbr) # Appel de la fonction avec comme parametre "8" et "20" table(8, 20) |
[alert variation= »alert-warning »]Dans le cas ou il y a plusieurs paramètres, sans les nommer comme ici, il faut respecter l’ordre d’appel.[/alert]
[section label= »Valeur par défaut des paramètres » anchor= »valeurs-defaut-parametres« ]
Valeur par défaut des paramètres
Il est possible de préciser une valeur par défaut pour les paramètres d’une fonction.
1 2 3 4 5 6 7 | # Definition de la fonction avec 1 OU 2 parametres def table(nbr, limite=10): # Instruction de la fonction for i in range(limite + 1): print "%i * %i = %i" % (i, nbr, i*nbr) # Appel de la fonction avec comme parametre uniquement "8" table(8) |
Il est ici possible d’appeler la fonctions de 2 façon:
- Soit en précisant le numéro de la table ET le nombre limite : table(8, 20)
- Soit en ne précisant QUE le numéro de la table : table(8)
Dans ce dernier cas, la limite sera par défaut égale à 10 comme définit dans la déclaration de la fonction.
[section label= »Nom des paramètres » anchor= »nom-parametres« ]
Utilisation du nom des paramètres
Il est également possible d’appeler les paramètres par leur nom.
Ceci est notamment utile pour une fonction comptant un certain nombre de paramètres qui ont tous une valeur par défaut ou, moins couramment, sans valeur par défaut.
1 2 3 4 5 | def maFonction(a=10, b="Bonjour", c=20): print b, a, c maFonction(c=8, b="Hello", a=3) maFonction(a=5, c=30) maFonction() |
Dans ce cas, peu importe le nombre de paramètres et l’ordre dans lequel vous les appelez.
[section label= »L’instruction return » anchor= »instruction-return« ]
L’instruction “return »
Il existe des fonctions comme print qui ne “renvoient” rien et des fonctions telles que input ou type qui renvoient une valeur.
[alert variation= »alert-danger »]Attention: “renvoyer” et “afficher” sont deux choses différentes ![/alert]
Vous pouvez capturer cette valeur en plaçant une variable devant.
1 | resultat= maFonction(variable) |
Les fonctions travaillent généralement sur des données et renvoient le résultat obtenu via un “return”.
1 2 3 4 5 | def maFonction(variable): calcul = (variable * variable) + 12 return calcul # On retourne le resultat du calcul resultat = maFonction(5) # Reception de ce qui est envoye via le return de la fonction et stockage dans une variable print resultat # Affichage du resultat |
[section label= »Les modules » anchor= »modules« ]
Les modules
Il s’agit d’un “bout de code que l’on a enfermé dans un fichier” regroupant un ensemble de fonctions et variables ayant (idéalement) toutes un rapport entre elles.
Si l’on veut travailler avec les fonctionnalités prévues par le module, il n’y a qu’à importer le module.
Il existe un grand nombre de modules disponibles sans qu’il soit nécessaire d’installer de bibliothèques supplémentaires.
Exemple de module intégré à Python
- os : fonctions relatives au système d’exploitation
- time : fonctions relatives au temps
- math : fonctions mathématiques
- …
[section label= »Module : La méthode import » anchor= »module-methode-import« ]
La méthode “import”
Lorsque l’on ouvre un interpréteur Python, les fonctionnalités des modules ne sont pas incluses.
C’est à vous, programmeur, de penser à importer les modules dont vous aurez besoin.
1 2 | import math # Import de toutes les fonctions du module "math" dans un nouvel espace de nom "math" print math.sqrt(16) # Appel de la fonction "sqrt()" de l'espace de nom "math" |
1 2 | from math import sqrt # Import de la fonction "sqrt()" du module "math" print sqrt(16) # Appel de la fonction "sqrt()" |
1 2 | from math import * # Import de toutes les fonctions du module, sans espace de nom print sqrt(16) # Appel de la fonction "sqrt()" |
Comment connaître la liste des fonctions d’un module ?
1 | help("math.sqrt") |
math.sqrt = sqrt(...)
sqrt(x)
Return the square root of x.
[section label= »En résumé » anchor= »resume« ]
En résumé
- Une fonction est une portion de code contenant des instructions que l’on va pouvoir réutiliser facilement.
- Découper son programme en fonctions permet une meilleure organisation.
- Les fonctions peuvent recevoir des informations en entrée et renvoyer une ou plusieurs informations grâce au mot clé return.
- Les fonctions se définissent de la façon suivante:
def nomDeLaFonction(param1, param2, paramN): - Les modules servent à regrouper des fonctions et variables ayant un lien entre elles.
- Les modules s’importent de la façon suivante:
import nomDuModule
Cours basé sur les travaux de Vincent Le Goff
Partager sur:
Laisser un commentaire