Académique Documents
Professionnel Documents
Culture Documents
----------------------------------------------------------------------------------
1) Définition et syntaxe
Définition
Une fonction est un ensemble d’instructions regroupées sous un nom et s’exécutant à la
demande. On doit définir une fonction à chaque fois qu’un bloc d’instructions se trouve à
plusieurs reprises dans le code ; il s’agit d’une « factorisation de code ».
Syntaxe
Une fonction se compose :
- du mot clé def suivi de l’identificateur de la fonction, de parenthèses entourant les
paramètres de la fonction séparés par des virgules, et du caractère « deux points » qui termine
toujours une instruction composée ;
- d’une chaîne de documentation (ou docstring) indentée comme le corps de la fonction ;
- du bloc d’instructions indenté par rapport à la ligne de définition, et qui constitue le corps de
la fonction.
Le bloc d’instructions est obligatoire. S’il est vide, on emploie l’instruction pass.
Créons une fonction qui nous retournera un âge:
...
>>> indique_mon_age()
20
Tout d'abord pour indiquer à l'interpréteur qu’on veut créer une fonction, on utilise le mot
clé def suivi d'un nom puis de parenthèses et ensuite d'un double point.
On remarque également qu'il y a un espace entre les 3 points et le mot clé "return", il s'agit
d'une indentation, c'est à dire un espace qui améliore non seulement la lecture de la fonction
mais qui indique que nous sommes toujours dans la fonction. Lorsque l'action demandée n'est
------------------------------------------------------------------------------------
2) Les paramètres
Créons une autre fonction:
...
>>> augmente_moi(1)
... return 30 + a + b
...
>>> augmente_moi(1, 2)
33
N.B Lorsqu’on doit donner des paramètres à une fonction, ces derniers doivent
impérativement être renseignés.
... return 30 + a + b
...
>>> augmente_moi(1)
------------------------------------------------------------------------------------
def ma_function(*var)
def ma_function(**var)
ma_function(*var)
ma_function(**var)
...
>>> augmente_moi(1, 2, 3)
60
...
------------------------------------------------------------------------------------
...
>>> ma_fiche(prenom="Foulen")
'Foulen'
...
>>> augmente_moi(1, 2, 3)
>>> augmente_moi(*data)
------------------------------------------------------------------------------------
>>> test(*data)
>>> test(**data)
• n1 est 2
• n2 est 3
------------------------------------------------------------------------------------
>>> x = "hello"
... print x
...
>>> test()
hello
Et une variable déclarée dans une fonction ne sera visible que dans cette fonction. On parle
alors de variable locale.
>>> x = False
... x = "hello"
...
>>> test()
>>> x
False
Syntaxe :
nom_fonction = lambda param_1, ..., param_n : expression
▪ pas de parenthèses;
------------------------------------------------------------------------------------
nom_fonction est le nom de la fonction, param_1 à param_n sont les paramètres de cette
fonction (ils peuvent également recevoir des valeurs par défaut), expression est
l’expression retournée par la fonction.
L’exemple suivant utilise cette écriture pour définir la fonction min retournant le plus
petit entre deux nombres positifs.
<<<
min = lambda x, y: (abs(x + y) - abs(x - y)) / 2
>>>
1.0
4.0
>>>
1.0
4.0
La fonction lambda considère le contexte de fonction qui la contient comme son contexte.
Il est possible de créer des fonctions lambda mais celle-ci utiliseront le contexte dans
l’état où il est au moment de son exécution et non au moment de sa création.
<<<
fs = []
for a in range(0, 10):
f = lambda x: x + a
fs.append(f)
for f in fs:
print(f(1)) # le programme affiche 10 fois 10 de suite
# car la variable a vaut dix à la fin de la boucle
>>>
------------------------------------------------------------------------------------
1
2
3
4
5
6
7
8
9
10
------------------------------------------------------------------------------------