Вы находитесь на странице: 1из 5

Les fonctions en Python.

1. Introduction :

En Python, il n’existe pas de routines comme on peut en trouver dans d’autres


langages de programmation. Quant au terme fonction en Python, il désigne à la fois les
fonctions au sens strict, qui fournissent une valeur de retour, mais aussi les procédures
qui n’en fournissent pas.
Les fonctions seront toujours placées en tête du programme (à cause de
l’interpréteur) ! Nous verrons aussi qu’elles peuvent être placées dans une librairie.
Les fonctions offrent des avantages considérables dans l’écriture d’un programme.
En effet, elles permettent une plus grande lisibilité du programme en le structurant
davantage et en simplifiant le programme principal puisqu’elles suppriment, au sein d’un même
programme, ce qu’on appelle du code redondant ( FACTORISATION du CODE !). De plus,
elles permettent aussi la réutilisation de code pour d’autres programmes (
REIMPLANTATION de certains CODES).
En Python, il existe toute une série de fonctions prédéfinies (fonctions d’interaction
avec l’utilisateur comme INPUT(), par exemple ; fonctions mathématiques, fonctions
graphiques,…). Mais il est possible, bien entendu, de se créer ses propres fonctions ! On
peut donc considérer une fonction comme une instruction personnalisée.

2. Syntaxe pour définir une fonction non prédéfinie par le langage :

def nomDeLaFonction(liste de paramètres) :



bloc d’instructions

Remarques générales :

1) le nom de la fonction peut être choisi comme on veut, excepté les mots réservés du
langage, l’utilisation de caractères spéciaux ou accentués (le «_ » est permis) ; il est
souhaitable d’utiliser au maximum des minuscules et les noms commençant par une
majuscule seront réservés aux classes (vois programmation orientée objet).
2) La liste des paramètres spécifie quelles informations il faudra fournir en guise
d’arguments lorsque l’on voudra utiliser cette fonction. Cette liste peut-être vide si
la fonction ne nécessite aucun paramètre.
3) Comme les instructions IF et WHILE, l’instruction def est une instruction composée
et donc la ligne contenant cette instruction se termine obligatoirement par un
double point, lequel introduit un bloc d’instructions que l’on ne doit pas oublier
d’indenter !

1
3. Appel d’une fonction dans le programme principal.

NomDeLaFonction(liste des éventuels arguments que l’on souhaite transmettre à la fonction)

Remarque :

Une fonction peut toujours être incorporée dans une autre fonction (Une 1ère fonction
peut donc appeler une 2ème fonction qui elle-même en appelle une 3ème ,…)

4. Fonction avec paramètre.

Supposons que nous nous sommes créés une fonction appelée table(). Celle-ci permet
d’afficher les termes d’une table de multiplication souhaitée. Lorsque nous appelons cette
fonction, nous devrons bien pouvoir lui indiquer quelle table nous souhaitons afficher. Cette
information que nous voulons transmettre à la fonction au moment même où nous
l’appellerons s’appelle argument. Dans la définition d’une telle fonction, il faut prévoir une
variable particulière pour recevoir l’argument transmis. Cette variable s’appelle paramètre.

Pour le nom du ou des paramètres, nous suivrons les mêmes règles que pour le nom
d’une fonction.
Remarquons que l’argument utilisé dans l’appel d’une fonction peut être une variable,
il n’est pas obligatoire que ce soit une constante.
Attention : le nom d’une variable que nous voulons passer comme argument n’a
rien à voir avec le nom du paramètre correspondant dans la fonction ! Ces noms
pourraient être identiques mais vu qu’ils désignent des choses totalement différentes, il
faut surtout éviter de donner le même nom !

5. Fonction avec plusieurs paramètres.

Pour définir une fonction avec plusieurs paramètres, il suffit d’inclure ceux-ci entre
les ( ) qui suivent le nom de la fonction, en les séparant à l’aide de virgules.

Attention : lors de l’appel de la fonction, les arguments utilisés doivent être fournis
dans le même ordre que celui des paramètres correspondants.

6. Variables locales, variables globales.

Variables locales : il s’agit de variables définies à l’intérieur du corps de la fonction et qui


ne sont accessibles qu’à la fonction elle-même. Nous dirons qu’elles sont « propres » à la
fonction !

Variables globales : il s’agit de variables définies à l’extérieur d’une fonction. Leur


« contenu » est visible de l’intérieur d’une fonction, mais la fonction ne peut le
modifier !

2
Pourquoi utiliser des variables définies que localement ? Lorsque des variables sont
définies localement, cela permet d’utiliser une quantités de fonctions sans se préoccuper le
moins du monde des noms de variables qui y sont utilisées : ces variables ainsi définies ne
pourront jamais interférer avec celles que nous pourrions définir ailleurs.

Remarque : l’instruction global permet d’indiquer, à l’intérieur de la définition d’une fonction,


quelles sont les variables à traiter globalement (à utiliser avec modération !)

7. Distinction entre les « vraies » fonctions et les procédures.

« Vraie » fonction : elle doit obligatoirement renvoyer une valeur lorsqu’elle se termine !

Procédure : elle ne renvoie pas de résultat !

Remarquons que jusqu’à présent, nous n’avions parlé que de procédures, en fait !

Syntaxe pour une « vraie » fonction :

1) La manière de définir la fonction reste inchangée !


2) Dans l’écriture de la définition de la fonction, il faut indiquer à celle-ci la valeur
qui doit être retournée à l’extérieur au programme appelant. L’instruction
RETURN permet de définir ce qui doit être renvoyé par la fonction.
3) Une fonction Python, à la différence de la plupart des autres langages, peut renvoyer
plusieurs valeurs (peut être très avantageux).

Remarque : L’instruction RETURN peut également être utilisée sans argument, à l’intérieur
d’une fonction, pour provoquer sa fermeture immédiate. La valeur retournée dans ce cas est
l’objet « NONE » (objet particulier correspondant à « rien »).

8. Documenter une fonction :

On peut documenter une fonction Python en lui donnant une chaîne de documentation.
En fait, on ne devrait même pas imaginer une fonction qui ne serait pas documentée.
 Il faut toujours renseigner la tâche qu'elle exécute
 Documenter tous les paramètres qu'elle reçoit:
o Leur caractère obligatoire
o Leur type (si pas évident)

Exemple :

def essai () :
’’Cette fonction est bien documentée mais ne fait presque rien’’
print ’’rien à signaler’’

3
Remarque :

Pour imprimer la documentation d’une fonction, il suffit de faire comme suit :

print essai . __doc__

9.Exemples :

Ex1 :
def add(val1,val2,val3): #fonction retournant une valeur
somme = val1+val2+val3
return somme

s=add(1,2,3)
print s

Ex2:
def som(val1,val2): #fonction ne retournant pas une valeur
somme = val1+val2
print somme

som(1,2) #appel de la fonction qui joue ici le rôle


# de procédure!!!

Ex3 :
def mult_som(val1,val2,val3): #fonction retournant plusieurs valeurs
somme = val1+val2+val3
produit= val1*val2*val3
return (somme,produit)

s,p=mult_som(2,2,3)
print s
print p

Ex4 :
def som(val1,val2):
global somme #déclaration de variables globales en Python
somme = val1+val2
print somme

somme=2
som(1,2)
print somme

4
10.Exercices d’application :

Ex.1 :
Ecrire une fonction permettant de générer aléatoirement une liste de 100 nombres entiers.

Ex.2 :
Ecrire une fonction permettant de rechercher le plus grand nombre d’une liste de n nombres
entiers.

Ex.3 :
Ecrire une fonction permettant de rechercher la position du plus petit nombre d’une liste
de n nombres entiers.

Ex.4 :
Ecrire une fonction permettant de déterminer si une chaîne de caractère est un palindrome.

Ex.5 :
Ecrire une fonction permettant de trier une liste de nombres entiers suivant leur parité.

Ex.6 :
Créer une librairie reprenant les différentes fonctions créées ci-dessus et ensuite tester
cette librairie dans un programme utilisant celle-ci.

Вам также может понравиться