Dans cette partie de cours, on va découvrir les l’utilisation des fonctions en python ( Python : Les fonctions). C’est une partie très importante!! nous avons essayer de la résumer et la bien structurer pour vous.
Introduction
Les fonctions sont très utiles pour réaliser plusieurs fois la même opération au sein d’un programme. Elles rendent également le code plus lisible et plus clair en le fractionnant en blocs logiques.
Types de fonctions
- Les fonctions Built-in : Font partie intégrante de Python, comme print() et input() sont toujours disponibles sans ajouter aucun effort de la part du programmeur.
- Les fonctions inclues dans des modules : Fonctions utiles mais pas autant utilisées que les Built-in fonctions, sont disponibles dans un certains nombres de modules préinstallés avec Python (ou à installer).
- Nos propres fonctions On peut créer nos propres fonctions et les utiliser quand on aura besoin.
1. Exemples de fonctions Built-in
Python a 69 fonctions Built-in :
On peut découvrir toutes les fonctions built-in ici.
Nous avons déjà utilisé quelques fonctions built_in : min(),max(),int-),float(), str(),hex(),input(),print(),eval(),sum(),tuple(),len(),type(),list(),range() et sorted().
Exercice 1:
- on veut afficher le code ascii d’un caractère . Pensez à la fonction ord()
- Transformer un caractère miniscule en majiscule. Pensez à la fonction chr()
Exercice 2 : soit le tuple suivant : t=((1,’a’), (2,’b’)).
Utiliser la fonction dict() pour créer un dictionnaire d à partir du tuple t.
2- Exemples de fonctions d’un module
Avec l’installation par défaut de l’environnement de développement python , un nombre de modules sont installés. On peut découvrir toutes les informations sur ces modules ici.
Exemple 1 : le module random
Ce module implémente des générateurs de nombres pseudo-aléatoires pour diverses distributions. Supposons on veut remplir une liste L par 10 nombres entiers aléatoires. Donc , on va utiliser la fonction randint() sachant que :
random.randint (a, b) : Renvoie un entier aléatoire N tel que a <= N <= b.
Proposer un programme qui remplit la liste par 10 entiers aléatoires puis l’affiche.
Exemple 2 : le module math
Supposons on veut calculer la racine carrée d’un nombre positif x saisit au clavier ?
On va utiliser la fonction sqrt du module math
Remarque :
Si le module n’est pas installé par défaut, on doit l’installer avant de pouvoir utiliser ses fonctions.
3- Les fonctions utilisateur
Le développeur peut définir ses propres fonctions et les utiliser par la suite. Donc , on a deux étapes :
- Déclaration de la fonction
- Appel (invocation, utilisation ) de la fonction
Remarque : pour les fonctions Built-in ou celles intégrées dans les modules, on n’a qu’à découvrir comment utiliser les fonctions. Autrement dit, l’étape de déclaration des fonctions est déjà faite.
1- Déclaration et appel des fonctions
pour déclarer une fonction on suit la syntaxe suivante :
def nomFonction(parametre1,parametre2,…) :
instructions
return valeur_de_retour
Exemple : def somme(a,b) :
res=a+b
return res
2- Utilisation (appel ) de la fonction
Pour utiliser une fonction déjà déclarée, on l’appelle à l’aide de son nom.
Exemple : x=somme(10,156)
print(x)
Remarque : pour les fonctions en Python, on ne précise pas le type des arguments. Python est en effet connu comme étant un langage au « typage dynamique », c’est-à-dire qu’il reconnaît pour vous le type des variables au moment de l’exécution.
Type de passage de paramètres :
- Paramètres positionnels :
Lorsqu’on définit la fonction def somme(a, b): les arguments a et b sont appelés arguments positionnels (en anglais positional arguments or paramters). Il est strictement obligatoire de les préciser lors de l’appel de la fonction. De plus, il est nécessaire de respecter le même ordre lors de l’appel que dans la définition de la fonction. En effet, tout dépendra de leur position :
Exemple :
Déclaration :
def Puissance(a,b) :
res=a**b
return res
Appel :
x=Puissance(2,5)
y=Puissance(5,2)
print( x,y)
2- Passage par mot clé (Keyword argument passing ) :
Python offre une autre façon de faire passer les arguments à une fonction, la signification de l’argument est dictée par son nom et non pas sa position, c’est ce qu’on appelle le passage par mot clé (keyword argument passing en anglais)
Exemple :
Déclaration :
def Puissance(a,b) :
res=a**b
return res
Appel :
x=Puissance(b=2,a=5)
y=Puissance(5,2)
print( x,y)
Remarque : On peut mélanger entre les arguments positionnels et les arguments keywords, mais les arguments positionnels doivent toujours être placés avant les keywords arguments.
Exemple :
Déclaration :
def f1(a,b,c) :
res=a**b+c
return res
Appel :
x=f1(2,c=5,b=2)
print( x)
3- Valeur par défaut :
Il est possible aussi d’affecter une valeur par défaut à un paramètre lors de la déclaration (valeur par défaut prédéfinie), cette valeur sera prise en considération dans le cas où l’argument n’est pas omis.
Exemple :
Déclaration :
def f1(a,b,c=5) :
res=a**b+c
return res
Appel :
x=f1(2,3)
print( x)
4- L’instruction return
Toute fonction peut éventuellement retourner une valeur, dans ce cas nous utiliserons l’instruction return, toutefois cette instruction peut avoir deux objectifs :
- En utilisant uniquement le mot clé return, sans spécifier de valeurs ou d’expressions, il permettra de terminer immédiatement l’exécution de la fonction, et le retour à la suite des instructions après l’appel de la fonction.
- La 2ème possibilité et d’utiliser le return avec une expression, nous utilisons la syntaxe suivante
Remarque : Le mot clé None :
Lorsque l’instruction return est utilisée sans aucun 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 »).
Exercices
Exercice 1 :
- Proposer une fonction en python qui permet de calculer la somme des éléments d’une liste
- Utiliser cette fonction pour calculer la somme des éléments d’une liste L dont les éléments sont générés aléatoirement.
Exercice 2 :
- Proposer une fonction qui construit une liste les diviseurs d’un nombre la fonction doit retourner la liste construite.
- tester la fonction avec un programme de test.
Exercice 3 : Utilisation des fonctions récursives
Une fonction récursive est une fonction qui s’appelle elle-même, toutefois, il faut faire attention à la condition d’arrêt sinon on risque d’exécuter la fonction à l’infinie
- Proposer une fonction qui calcule la factorielle d’un nombre
- Utiliser la fonction pour calculer la somme des factorielles des 100 premiers nombres positifs
Vous pouvez suivre la liste des vidéos du cours Python (Programmation ) sur notre chaine youtube : Vidéos Python (cours) , Vidéos Python (exercices).
Aussi, notre cours bien structuré est sur le site : cours python
Découvrir plus de cours
Algorithmes, base de données, merise, SQL
L’héritage Multiple en programmation orientée objet
Bienvenue dans notre cours ‘Programmation orientée objet en Python’. Alors, dans cette partie de cours, on...
Les structures alternatives
Jusqu’à présent, nous pouvons créer un programme en python qui permet de lire les données...
Variables en python
Dans cette partie de cours, on va découvrir les variables en python : comment elles...
Procédures et fonctions
Introduction : En programmation, donc en algorithmique, il est possible de décomposer le programme qui...