4. Définition et utilisation des fonctions¶
1. Définition vs. utilisation (appel) d’une fonction¶
1.1 Définition d’une fonction¶
Une fonction est un bloc de code qui effectue une tâche spécifique. Elle est définie avec le mot-clé def.
Syntaxe :
def: Mot-clé pour définir une fonction.nom_de_la_fonction: Nom donné à la fonction (doit être descriptif).:: Indique le début du bloc de code.- Indentation : Les instructions à l’intérieur de la fonction doivent être indentées (généralement 4 espaces).
1.2 Utilisation (appel) d’une fonction¶
Pour exécuter une fonction, il faut l’appeler par son nom suivi de parenthèses.
Syntaxe :
1.3 Exemple simple¶
# Définition de la fonction
def dire_bonjour():
print("Bonjour !")
# Appel de la fonction
dire_bonjour()
Sortie :
2. Fonctions sans paramètre ni retour¶
2.1 Définition¶
Une fonction sans paramètre et sans retour effectue une tâche sans recevoir ni retourner de données.
Exemple :
from datetime import datetime
def afficher_date_du_jour():
aujourdhui = datetime.now()
print(f"Aujourd'hui, nous sommes le {aujourdhui.strftime('%d/%m/%Y')}.")
# Appel
afficher_date_du_jour()
Sortie possible :
3. Fonctions avec 1 paramètre et sans retour¶
3.1 Définition¶
Une fonction avec 1 paramètre reçoit une valeur lors de l’appel. Le paramètre est utilisé comme une variable locale dans la fonction.
Syntaxe :
3.2 Exemple¶
Sortie :
Note
Si on appelle (ou utilise) une fonction une seule fois, alors on peut avoir de la difficulté à voir l’utilité de définir une fonction. Mais si on l’utilise plusieurs fois, on peut voir l’avantage de la réutilisation du code plus facilement. Comme ici, si on veut dire bonjour à plusieurs personnes, on peut appeler la fonction plusieurs fois, mais avec des noms différents.
Si on définit une fonction qui fait un calcul compliqué, alors on pourra répéter le calcul compliqué en appelant la fonction plusieurs fois avec des paramètres différents, sans avoir besoin de répéter tout le code (voir exemples plus bas).
4. Fonctions avec 2 paramètres ou plus et sans retour¶
4.1 Définition¶
Une fonction peut recevoir plusieurs paramètres, séparés par des virgules.
Syntaxe :
4.2 Exemple¶
def afficher_somme(a, b):
print(f"La somme de {a} et {b} est {a + b}.")
# Appel
afficher_somme(5, 3)
Sortie :
5. Fonctions avec retour et différents nombres de paramètres¶
5.1 Retour de valeur¶
Une fonction peut retourner une valeur avec le mot-clé return.
Syntaxe :
5.2 Exemples¶
5.2.1 Fonction avec 1 paramètre et retour¶
def carre(nombre):
return nombre ** 2
# Appel
resultat = carre(4)
print(f"Le carré de 4 est {resultat}.")
Sortie :
5.2.2 Fonction avec 2 paramètres et retour¶
def produit(a, b):
return a * b
# Appel
resultat = produit(3, 7)
print(f"Le produit de 3 et 7 est {resultat}.")
Sortie :
5.2.3 Fonction avec plusieurs retours¶
Une fonction peut retourner plusieurs valeurs sous forme de tuple.
def calculer_somme_et_produit(a, b):
somme = a + b
produit = a * b
return somme, produit
# Appel
somme, produit = calculer_somme_et_produit(4, 5)
print(f"Somme : {somme}, Produit : {produit}")
Sortie :
Attention
Bien qu’il soit possible de retourner plusieurs valeurs d’une fonction, il est souvent préférable de séparer les calculs en plusieurs fonctions, pour qu’une fonction ne soit pas trop complexe et facile à comprendre. Idéalement, une fonction devrait se concentrer sur une tâche spécifique et retourner un résultat clair.
6. Erreurs courantes avec les fonctions¶
6.1 Mauvaise indentation¶
Problème : Oublier d’indenter le code à l’intérieur de la fonction. Exemple incorrect :
Correction :
6.2 Utilisation de variables extérieures à la place de paramètres¶
Problème : Utiliser une variable définie en dehors de la fonction au lieu de passer un paramètre.
Exemple incorrect :
nom = "Alice"
def dire_bonjour():
print(f"Bonjour, {nom}!") # Utilise une variable externe
dire_bonjour()
Problème : Si nom change, la fonction ne sera plus fiable.
Correction :
Astuce
Une fonction ne devrait pas dépendre de variables globales pour fonctionner correctement. Cela peut rendre le code difficile à maintenir et à comprendre. Il est préférable de passer les valeurs nécessaires en tant que paramètres à la fonction.
6.3 Oublier le return¶
Problème : Oublier de retourner une valeur quand c’est nécessaire.
Exemple incorrect :
def carre(nombre):
nombre ** 2 # Oublie le return
resultat = carre(4)
print(resultat) # Affiche None car il n'y a pas de retour
Correction :
6.4 Nombre incorrect de paramètres¶
Problème : Appeler une fonction avec un nombre incorrect de paramètres. Exemple incorrect :
Correction :
7. Résumé des concepts clés¶
| Type de fonction | Exemple de définition | Exemple d’appel |
|---|---|---|
| Sans paramètre ni retour | def dire_bonjour(): |
dire_bonjour() |
| Avec 1 paramètre et sans retour | def dire_bonjour_a(nom): |
dire_bonjour_a("Alice") |
| Avec 2+ paramètres et sans retour | def afficher_somme(a, b): |
afficher_somme(5, 3) |
| Avec retour et 1 paramètre | def carre(nombre): return nombre ** 2 |
resultat = carre(4) |
| Avec retour et 2+ paramètres | def produit(a, b): return a * b |
resultat = produit(3, 7) |
| Avec plusieurs retours | def calculer(a, b): return a + b, a * b |
somme, produit = calculer(4, 5) |
8. Exemples détaillés¶
1. Calcul de l’aire d’un cercle¶
Formule : \( \text{Aire} = \pi \times \text{rayon}^2 \)
import math
def aire_cercle(rayon):
"""Calcule l'aire d'un cercle à partir de son rayon."""
return math.pi * rayon ** 2
# Appel de la fonction
rayon = float(input("Entrez le rayon du cercle : "))
aire = aire_cercle(rayon)
print(f"L'aire du cercle de rayon {rayon} est {aire:.2f}.")
2. Calcul de l’aire d’un rectangle¶
Formule : \( \text{Aire} = \text{longueur} \times \text{largeur} \)
def aire_rectangle(longueur, largeur):
"""Calcule l'aire d'un rectangle à partir de sa longueur et de sa largeur."""
return longueur * largeur
# Appel de la fonction
longueur = float(input("Entrez la longueur du rectangle : "))
largeur = float(input("Entrez la largeur du rectangle : "))
aire = aire_rectangle(longueur, largeur)
print(f"L'aire du rectangle est {aire:.2f}.")
3. Calcul de la moyenne de trois nombres¶
Formule :
def moyenne_trois_nombres(nombre1, nombre2, nombre3):
"""Calcule la moyenne de trois nombres."""
return (nombre1 + nombre2 + nombre3) / 3
# Appel de la fonction
nombre1 = float(input("Entrez le premier nombre : "))
nombre2 = float(input("Entrez le deuxième nombre : "))
nombre3 = float(input("Entrez le troisième nombre : "))
moyenne = moyenne_trois_nombres(nombre1, nombre2, nombre3)
print(f"La moyenne des trois nombres est {moyenne:.2f}.")
4. Conversion de kilomètres en miles¶
Formule : \( \text{Miles} = \text{Kilomètres} \times 0.621371 \)
def kilometres_vers_miles(kilometres):
"""Convertit une distance de kilomètres en miles."""
return kilometres * 0.621371
# Appel de la fonction
kilometres = float(input("Entrez la distance en kilomètres : "))
miles = kilometres_vers_miles(kilometres)
print(f"{kilometres} km équivaut à {miles:.2f} miles.")
Utilisation de l’IA
Page rédigée en partie avec l’aide d’un assistant IA. L’IA a été utilisée pour générer des explications, des exemples et/ou des suggestions de structure. Toutes les informations ont été vérifiées, éditées et complétées par l’auteur.