Définition des fonctions et des paramètres en Python

Définition des fonctions en Python

Les fonctions permettent d'encapsuler un bloc de code effectuant une tâche spécifique. Elles peuvent être appelées à chaque besoin, simplifiant la réutilisation du code.

Syntaxe de base

def ma_fonction():
    # Corps de la fonction contenant le code encapsulé

Pour utiliser la fnoction, appelez-la par son nom :

ma_fonction()

Avantages des fonctions

  • Regrouper le code répétitif pour une meilleure lisibilité
  • Permettre des appels concis
  • Faciliter les modifications globales en un seul endroit

Exemple : une routine quotidienne encapsulée.

def routine_journaliere():
    print("1. Prendre le bus")
    print("2. Faire les courses")
    print("3. Négocier les prix")
    print("4. Rentrer chez soi")
    print("5. Préparer le repas")

routine_journaliere()
print("S'occuper des enfants")
routine_journaliere()
print("Nettoyer la salle de bain")
routine_journaliere()
print("Jouer aux jeux vidéo")

Paramètres des fonctions

Les paramètres permettent de transmettre des informations lors de l'appel d'une fonction. Ils se divisent en deux catégories : les paramètres formels (définis) et les paramètres réels (passés).

Paramètres réels (arguments)

  • Arguments positionnels : transmis selon l'ordre dans l'appel.
  • Arguments par mot-clé : transmis en spécifiant le nom du paramètre.
  • Arguments mixtes : combinaison des deux, avec les positionnels avant les mots-clés.

Tous les paramètres formels doivent recevoir une valeur lors de l'exécution.

Exemple : une fonction pour insulter avec des paramètres.

def critiquer(cible, intensite):
    print("1. Regarder fixement", cible)
    print("2. Faire des remontrances sévères", cible)
    if intensite > 99:
        print("3. Être impoli extrêmement")
    else:
        print("3. Dire quelque chose de léger")
    print("4. Terminer l'échange")

critiquer("vieux clavier", 188)
critiquer("souris défectueuse", 10)
critiquer("ordinateur lent", 999)

Paramètres formels

  1. Paramètres positionnels : définis dans l'ordre de la fonction.
  2. Paramètres par défaut : valeurs par défaut assignées, utilisées si aucun argument n'est fourni.
  3. Paramètres dynamiques :
    • *args pour un nombre variable d'arguments positionnels, stockés dans un tuple.
    • **kwargs pour un nombre variable d'arguments par mot-clé, stockés dans un dictionnaire.
  4. Paramètres par mot-clé obligatoires : doivent être passés par nom, définis après *.

Ordre recommandé des paramètres formels : posisionnels > *args > par défaut (via mot-clé) > **kwargs.

Exemple de calculatrice avec paramètres

def calculer(val1, operateur, val2):
    if operateur == "+":
        print(val1 + val2)
    elif operateur == "-":
        print(val1 - val2)
    elif operateur == "*":
        print(val1 * val2)
    elif operateur == "/":
        print(val1 / val2)
    else:
        print("Opération non supportée")

calculer(500, "+", 300)
calculer(500, "-", 300)
calculer(500, "*", 300)
calculer(500, "/", 300)
calculer(500, "?", 300)

Paramètres par défaut et dynamiques

Pour des arguments positionnels avec une valeur par défaut :

def enregistrer(nom, age, genre="homme"):
    print(nom, age, genre)

enregistrer("Alice", 25)
enregistrer("Bob", 30)
enregistrer("Charlie", 35)
enregistrer("Diana", 40, "femme")

Arguments dynamiques positionnels avec *args :

def manger(*aliments):
    print(aliments)

manger("riz", "poulet", "salade")
manger("pain")  # Résultat : ('pain',) – un tuple avec un élément

Arguments dynamiques par mot-clé avec **kwargs :

def composer(**ingredients):
    print(ingredients)

composer(plat="pizza", sauce="tomate")

Ordre correct des paramètres mixtes

def fonction_generale(a, b, *args, c="défaut", **kwargs):
    print(a, b, c, args, kwargs)

fonction_generale(1, 2, 3, 4, 5, d=6, e=7, c="personnalisé")

Ici, c reçoit la valeur par mot-clé, et les arguments restants sont capturés.

Utilisation avec des listes et dictionnaires

Déballer une liste en arguments positionnels :

liste_eleves = ["Luc", "Marie", "Paul", "Sophie"]

def afficher(*noms):
    print(noms)

afficher(*liste_eleves)  # Équivalent à afficher("Luc", "Marie", "Paul", "Sophie")

Déballer un dictionnaire en arguments par mot-clé :

dict_info = {"nom": "Luc", "classe": "A", "note": 85}

def afficher_info(**donnees):
    print(donnees)

afficher_info(**dict_info)

Étiquettes: Python fonctions paramètres arguments args

Publié le 4 juillet à 02h10