Regroupez des tâches en utilisant des fonctions

Qu’est-ce qu’une fonction ?

Une fonction est un bloc de code avec un but spécifique, auquel vous pouvez donner un nom. Quand vous appelez cette fonction, vous exécutez le code qu’elle contient. Les fonctions vous laissent saisir des paramètres pour exécuter le même code sur différentes valeurs.  

Il y a différents types de fonctions dans Python :

  1. Les fonctions intégrées fournies avec Python.

  2. Les fonctions définies par l’utilisateur que les développeurs (vous !) créent. 

Définissez une fonction

Les fonctions sont des blocs de code réutilisables qui permettent d'organiser et de structurer le code, ainsi que de faciliter sa maintenance. En Python, la création d'une fonction se fait à l'aide du mot-clé  def  , suivi du nom de la fonction et des éventuels paramètres entre parenthèses.

De gauche à droite, l'entrée, la fonction et la sortie.
Fonction avec une entrée et une sortie

Nous allons maintenant explorer trois types de fonctions différents pour découvrir toutes les possibilités de cette fonctionnalité :

  1. Les fonctions sans paramètres.

  2. Les fonctions avec paramètres.

  3. Les fonctions avec une valeur de retour.

Utilisez une fonction sans paramètres

Une fonction sans paramètres et sans valeur de retour est la fonction la plus basique que l'on puisse créer en programmation. Elle est assimilable à un bloc de code à lancer quand cela est nécessaire. Elle est utile pour encapsuler un bloc de code répétitif, et faciliter sa réutilisation dans différents endroits du programme.

def afficher_message():
print("Bonjour, comment ça va ?")

Cette fonction s'appelle  afficher_message  et ne prend aucun paramètre en entrée, car elle est définie avec des parenthèses vides. Elle n'a pas de valeur de retour car elle se contente d'afficher un message à l'écran en utilisant la fonction  print()  .

Pour appeler cette fonction, il suffit d'utiliser son nom et les parenthèses vides, car il n’y a pas de paramètres :

afficher_message()

En utilisant cette fonction dans votre code, vous pouvez facilement afficher un message de salutation, comme `"Bonjour, comment ça va ?"`, autant de fois que nécessaire, simplement en l'appelant dans le code.

Utilisez une fonction avec paramètres

On peut également créer une fonction avec des paramètres, qui permettent de transmettre des valeurs à la fonction. Les paramètres sont simplement listés entre parenthèses, séparés par des virgules. Voici un exemple d'une fonction qui prend deux paramètres, un nom et un prénom, et qui les affiche ensuite.

def afficher_nom_prenom(nom, prenom):
print("Nom :", nom)
print("Prénom :", prenom)

Pour appeler cette fonction, il faut préciser les valeurs à transmettre aux paramètres, soit deux chaînes de caractères.

afficher_nom_prenom("Dupont", "Jean")

La fonction affichera :

Nom : Dupont
Prénom : Jean

 Utilisez une fonction avec une valeur de retour

Une fonction avec une valeur de retour est une fonction qui peut prendre des paramètres et effectuer des opérations, mais qui renvoie également une valeur à la fin. Cette valeur peut être utilisée à d'autres endroits du programme. Par exemple, si nous avons une fonction qui calcule la somme de deux nombres, nous pouvons stocker le résultat dans une variable pour l'utiliser plus tard dans notre programme.

2&3 en entrée donnent 5 en sortie
Découvrez la fonction "somme"
def calculer_somme(a, b):
resultat = a + b
return resultat

Dans cet exemple, la fonction prend deux nombres en paramètres, les additionne, puis renvoie le résultat de l'addition. Le résultat est stocké dans la variable  resultat  et est renvoyé à l'aide du mot-clé  return  .

Pour utiliser la valeur de retour de la fonction, nous pouvons stocker le résultat dans une variable, comme ceci :

somme = calculer_somme(2, 3)
print(somme) #Ce print affichera 5

Dans ce cas, la variable  somme  contiendra la valeur renvoyée par la fonction, qui est le résultat de l'addition de 2 et 3, soit 5. Cette valeur peut ensuite être utilisée à d'autres endroits du programme, si besoin.

Est-ce qu’une fonction peut renvoyer plusieurs valeurs simultanément ?

Il est possible de retourner plusieurs valeurs en les séparant par des virgules dans l'instruction de retour de la fonction. Les valeurs retournées seront automatiquement regroupées dans un tuple.

Quand utiliser les fonctions

Quand on écrit beaucoup de code, on s’y perd et on fait des erreurs facilement entre les différentes fonctionnalités en cours. Les fonctions vous aident à séparer le code en sections plus petites. Comme ça, vous gardez le fil sur ce que chaque partie est censée faire.

Vous en sortirez avec un code mieux écrit, mieux structuré et plus lisible.

A vous de jouer 

Contexte

Vous devez créer un programme qui calcule le salaire horaire d'un employé, en fonction de son salaire mensuel et de son nombre d'heures travaillées par semaine. Le programme doit utiliser des fonctions pour effectuer les calculs.

Consignes
  1. Créez une fonction appelée  salaire_mensuel(salaire_annuel)  qui prend en paramètre un salaire annuel et retourne le salaire mensuel correspondant en divisant le salaire annuel par 12.

  2. Créez une fonction appelée  salaire_hebdomadaire(salaire_mensuel)  qui prend en paramètre un salaire mensuel et retourne le salaire hebdomadaire correspondant en divisant le salaire mensuel par 4.

  3. Créez une fonction appelée  salaire_horaire(salaire_hebdomadaire, heures_travaillees)  qui prend en paramètres un salaire hebdomadaire et le nombre d'heures travaillées par semaine, et retourne le salaire horaire correspondant en divisant le salaire hebdomadaire par le nombre d'heures travaillées par semaine.

  4. Demandez à l'utilisateur de saisir son salaire annuel.

  5. Demandez à l'utilisateur de saisir le nombre d'heures travaillées par semaine.

  6. Appelez les fonctions précédemment créées pour calculer le salaire horaire correspondant.

  7. Affichez le résultat sous la forme : "Votre salaire horaire est de XX euros".

Une fois que vous avez terminé l'exercice, vous pouvez exécuter la commande suivante dans le terminal de VS code  pytest tests.py

En résumé

  • Les fonctions sont un moyen de répéter des fonctionnalités et de séparer du code dans des modules différents.

  • Vous pouvez créer des fonctions avec ou sans paramètres d’entrée.

  • Les fonctions sont définies (code écrit), appelées (code exécuté), et peuvent renvoyer des informations (une valeur est donnée comme résultat).

Dans le chapitre suivant, nous allons parler de la façon avec laquelle il faut écrire du code, et pourquoi c’est si important !

Et si vous obteniez un diplôme OpenClassrooms ?
  • Formations jusqu’à 100 % financées
  • Date de début flexible
  • Projets professionnalisants
  • Mentorat individuel
Trouvez la formation et le financement faits pour vous