Lenaick Sorimoutou

Retour

7. Fonctions en Python

Apprendre à créer et utiliser des fonctions pour organiser et réutiliser votre code Python

Fonctions en Python#

Dans ce septième épisode de la série “Python pour les débutants”, nous découvrons les fonctions qui permettent d’organiser votre code, de le réutiliser et de le rendre plus modulaire et maintenable.

Qu’est-ce qu’une fonction ?#

Une fonction est un bloc de code réutilisable qui effectue une tâche spécifique. C’est comme une recette de cuisine que vous pouvez utiliser plusieurs fois avec différents ingrédients.

Créer une fonction simple#

def dire_bonjour():
    print("Bonjour !")

# Appeler la fonction
dire_bonjour()
python

Fonctions avec paramètres#

Les paramètres permettent de passer des données à votre fonction :

def dire_bonjour(nom):
    print(f"Bonjour {nom} !")

# Appeler avec différents noms
dire_bonjour("Alice")
dire_bonjour("Bob")
python

Plusieurs paramètres#

def calculer_somme(a, b):
    resultat = a + b
    print(f"{a} + {b} = {resultat}")

calculer_somme(5, 3)
calculer_somme(10, 7)
python

Fonctions avec valeur de retour#

Utilisez return pour renvoyer une valeur :

def calculer_somme(a, b):
    return a + b

resultat = calculer_somme(5, 3)
print(f"Le résultat est : {resultat}")
python

Exemple avec calcul d’aire#

def calculer_aire_rectangle(longueur, largeur):
    return longueur * largeur

aire = calculer_aire_rectangle(5, 3)
print(f"L'aire du rectangle est : {aire}")
python

Paramètres par défaut#

Vous pouvez donner des valeurs par défaut aux paramètres :

def saluer(nom, message="Bonjour"):
    print(f"{message} {nom} !")

# Utilisation avec valeur par défaut
saluer("Alice")  # Affiche : Bonjour Alice !

# Utilisation avec message personnalisé
saluer("Bob", "Salut")  # Affiche : Salut Bob !
python

Fonctions avec plusieurs valeurs de retour#

def calculer_stats(nombres):
    somme = sum(nombres)
    moyenne = somme / len(nombres)
    maximum = max(nombres)
    minimum = min(nombres)
    
    return somme, moyenne, maximum, minimum

nombres = [1, 5, 3, 9, 2]
somme, moyenne, max_val, min_val = calculer_stats(nombres)

print(f"Somme : {somme}")
print(f"Moyenne : {moyenne}")
print(f"Maximum : {max_val}")
print(f"Minimum : {min_val}")
python

Portée des variables#

Les variables dans une fonction sont locales :

def ma_fonction():
    variable_locale = "Je suis locale"
    print(variable_locale)

ma_fonction()
# print(variable_locale)  # Erreur ! Variable non définie
python

Variables globales#

variable_globale = "Je suis globale"

def ma_fonction():
    global variable_globale
    variable_globale = "Modifiée dans la fonction"
    print(variable_globale)

ma_fonction()
print(variable_globale)
python

Exemples pratiques#

Calculatrice simple#

def calculatrice(operation, a, b):
    if operation == "+":
        return a + b
    elif operation == "-":
        return a - b
    elif operation == "*":
        return a * b
    elif operation == "/":
        if b != 0:
            return a / b
        else:
            return "Erreur : Division par zéro"
    else:
        return "Opération non supportée"

# Utilisation
resultat = calculatrice("+", 10, 5)
print(f"10 + 5 = {resultat}")

resultat = calculatrice("*", 4, 7)
print(f"4 * 7 = {resultat}")
python

Vérificateur de mot de passe#

def verifier_mot_de_passe(mot_de_passe):
    if len(mot_de_passe) < 8:
        return False, "Le mot de passe doit contenir au moins 8 caractères"
    
    if not any(c.isupper() for c in mot_de_passe):
        return False, "Le mot de passe doit contenir une majuscule"
    
    if not any(c.islower() for c in mot_de_passe):
        return False, "Le mot de passe doit contenir une minuscule"
    
    if not any(c.isdigit() for c in mot_de_passe):
        return False, "Le mot de passe doit contenir un chiffre"
    
    return True, "Mot de passe valide"

# Test
mot_de_passe = "MonMotDePasse123"
valide, message = verifier_mot_de_passe(mot_de_passe)
print(message)
python

Générateur de mots de passe#

import random
import string

def generer_mot_de_passe(longueur=12):
    caracteres = string.ascii_letters + string.digits + "!@#$%^&*"
    mot_de_passe = ''.join(random.choice(caracteres) for _ in range(longueur))
    return mot_de_passe

# Générer des mots de passe
mot_de_passe1 = generer_mot_de_passe()
mot_de_passe2 = generer_mot_de_passe(16)

print(f"Mot de passe 1 : {mot_de_passe1}")
print(f"Mot de passe 2 : {mot_de_passe2}")
python

Bonnes pratiques#

  1. Nommez vos fonctions clairement : calculer_moyenne() plutôt que calc()
  2. Une fonction, une tâche : Chaque fonction doit avoir un objectif précis
  3. Documentez vos fonctions avec des commentaires
  4. Évitez les fonctions trop longues (plus de 20-30 lignes)
  5. Utilisez des paramètres par défaut quand c’est approprié

Conclusion#

Les fonctions sont essentielles pour :

  • Organiser votre code en blocs logiques
  • Réutiliser du code sans le dupliquer
  • Faciliter la maintenance et les modifications
  • Créer des programmes modulaires

Dans le prochain épisode, nous découvrirons les listes et les dictionnaires pour stocker et manipuler des données !