×

[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]

cours-python-les-fonction-8

[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()

0 * 7 = 0
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")

Help on built-in function sqrt in math:

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:

Photographe professionnel, originaire d'Alsace (France), ancien Directeur Technique sur les films d'animation "Minions", "Moi, Moche et Méchant" et "Le Lorax".

Laisser un commentaire