• 12 heures
  • Facile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 13/05/2020

Écrivez vos propres fonctions

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Depuis le début de ce cours, vous avez utilisé différentes fonctions, comme la fonction  print()  ou encore les différentes fonctions de cast comme int()  ou encore str(). Vous allez à présent prendre le temps de bien définir ce qu’est une fonction, à quoi elle sert et comment vous pouvez créer vos propres fonctions : les fonctions n’auront plus aucun secret pour vous !

Découvrez les fonctions

Lors de vos analyses de données, vous allez régulièrement être amené à utiliser plusieurs fois des groupes d’instructions dans un but très précis. Un des principes fondamentaux pour tout programmeur informatique est d’avoir un maximum de résultats pour un minimum d’efforts : un dicton dit même qu’un bon programmeur est un programmeur fainéant. C’est grâce à ce principe un peu "paresseux", mais sacrément efficace qu’est venue l’idée des fonctions. Les fonctions permettent de regrouper plusieurs instructions dans un bloc qui sera appelé grâce à un nom.

Les fonctions ne sont pas spécifiques à Python, elles sont présentes dans tous les langages informatiques. Elles permettent en particulier :

  • de réutiliser une portion de code déjà écrite via le nom de la fonction – il n’est donc pas nécessaire de réécrire toute la portion de code à chaque fois ;

  • d’alléger un code et de le rendre plus lisible !

Il existe de nombreuses fonctions préexistantes en Python ! En plus de celles déjà vues, il y a par exemple :

  • len()  : une fonction qui renvoie la longueur d’un élément. Vous vous souvenez des chaînes de caractères ? Utiliser cette fonction sur une chaîne de caractères permet par exemple de savoir combien de caractères cette dernière contient ;

  • type()  : permet d’afficher le type d’une variable ;

  • pow(a, b)  : permet de calculer a puissance b. Elle est équivalente à l’écriture  a**b;

  • abs()  : retourne la valeur absolue d’un nombre.

Voici quelques exemples pour illustrer l’utilisation de ces fonctions :

Fonctions de base en Python
Fonctions de base en Python

Écrivez vos propres fonctions

Supposez à présent qu’il vous soit demandé de développer un programme faisant intervenir des notions de géométrie. Vous avez à utiliser de nombreux triangles dont vous avez la longueur des trois côtés et vous souhaitez afficher leur périmètre. Vous pourriez naturellement réaliser l’opération pour chaque triangle à la main, mais n’oubliez pas : vous voulez un maximum de résultat pour le moins d’efforts possible. Vous allez donc créer une fonction qui va afficher le périmètre d’un triangle en fonction de la longueur de ses côtés !

Une fonction est définie via le mot clé  def  suivi du nom de la fonction. L’ensemble des instructions associées à cette fonction seront ensuite écrites à la suite des deux points.

def nomFonction():
# instructions
# pouvant aller
# sur plusieurs
# lignes

Notez que l’ensemble des instructions associées à votre fonction sont décalées dans le code : c’est ce que l’on appelle l’indentation. Python est un langage structuré en blocs : chaque groupe ou bloc de programme doit donc être indenté. Par exemple, l’ensemble des instructions indentées à la suite des  :  seront uniquement disponibles dans  nomFonction. L’indentation démarre le bloc et la "désindentation" le termine (la première ligne non indentée ne sera donc plus incluse dans  nomFonction).

Définissez à présent une fonction qui répondrait à votre problématique :

def afficherPerimetre():
cote1 = 6
cote2 = 4
cote3 = 3
perimetre = cote1 + cote2 + cote3
print(perimetre)
afficherPerimetre() # => 13

Cette fonction est correcte, mais un peu inutile telle quelle : vos triangles n’ont pas tous la même dimension.

Définissez des paramètres

Pour aller au-delà de cette limitation, vous devez faire accepter à votre fonction des nombres extérieurs. Vous pouvez faire cela en définissant des paramètres.

En Python, les paramètres, tout comme le nom de la fonction, sont définis lors de l’écriture de cette dernière. Voilà ce que cela donnerait avec l’exemple ci-dessus :

def afficherPerimetre(cote1, cote2, cote3):
perimetre = cote1 + cote2 + cote3
print(perimetre)

Les paramètres sont des variables définies lors de la déclaration de la fonction, spécifiées à l’intérieur des parenthèses. À présent, vous pouvez utiliser votre fonction avec n’importe quel triangle existant :

afficherPerimetre(10, 11, 4) # => 25
afficherPerimetre(2, 2, 3.5) # => 7.5

Chaque valeur est affectée à un paramètre, dans l’ordre où elles ont été définies. Par exemple, dans le premier essai :

  • la variable  cote1  aura  pour valeur 10 ;

  • la variable  cote2  aura  pour valeur 11 ;

  • la variable  cote3  aura  pour valeur 4.

La fonction va ensuite réaliser l’ensemble des opérations avec ces valeurs-là.

Les paramètres correspondent aux variables déclarées dans une fonction. Les valeurs qui sont passées en paramètres sont, elles, appelées des arguments.

C’est top, vous avez ajouté quelques fonctionnalités à votre fonction !

À présent, qu’est-ce que je peux faire avec le résultat ?

Souvent, lorsque vous utilisez une fonction dans un code, vous attendez une réponse que vous pouvez réutiliser pour avancer dans le code. Cette réponse peut être apportée via la valeur retournée par une fonction.

Définissez une valeur retournée

Pour définir une valeur retournée, il faut explicitement utiliser le mot clé return à la fin de votre fonction.

Vous pourriez changer votre fonction  afficherPerimetre  en  calculPerimetre  qui retournera l’aire d’un triangle, en fonction de la longueur de ses trois côtés, pour pouvoir être réutilisé après coup :

def calculPerimetre(cote1, cote2, cote3):
perimetre = cote1 + cote2 + cote3
return perimetre

Une fois votre fonction définie, vous pouvez l’utiliser autant de fois que nécessaire :

perimetre1 = calculPerimetre(6, 4, 3)
perimetre2 = calculPerimetre(10, 3, 11)
print("Le périmetre de mon premier triangle est", perimetre1, "et celle de mon second est", perimetre2)

Et en analysant ces lignes, vous vous rendrez compte qu’à chaque fois que vous utilisiez la fonction  print, vous lui passiez en paramètres les éléments à afficher.

Utilisez la fonction help en cas d'oubli

Dans votre expérience dans l’analyse de données, il va vous arriver régulièrement de vous rappeler du nom d’une fonction, mais pas forcément de ce qu’elle fait ou pas forcément de ces arguments, etc. Pas de panique ! La fonction  help  est là pour ça ! Si vous exécutez  help(nomFonction), cela affichera la documentation de cette fonction résumant :

  • son but ;

  • des recommandations d’utilisation ;

  • la liste et la description des paramètres ;

  • parfois même des exemples.

Voici un exemple avec la fonction puissance (pow) vue ci-dessus :

Documentation d'aide de la fonction Pow
Documentation d’aide de la fonction Pow

Ouf, vous avez assimilé pas mal de nouvelles connaissances en peu de temps. Quelle progression !

En résumé

Dans ce chapitre, vous avez vu que :

  • les fonctions peuvent avoir des paramètres et des valeurs de retour ;

  • une valeur de retour est le résultat de l’exécution de la fonction. Elle est retournée au code qui a appelé la fonction, pour ensuite être utilisée au besoin ;

  • les paramètres sont les données nécessaires à une fonction pour être exécutée et générer un résultat ;

  • les paramètres sont des variables définies par un nom. Ils sont spécifiés dans la déclaration de la fonction ;

  • lorsque l’on utilise une fonction, vous lui passez différentes valeurs en paramètres. Ces valeurs sont appelées arguments;

  • vous pouvez utiliser la fonction help pour afficher la documentation d’une fonction donnée.

Dans le prochain chapitre, vous aborderez la notion de programmation orientée objet et ce que cela change pour vous en Python.

Exemple de certificat de réussite
Exemple de certificat de réussite