Python - Arguments Arbitraires ou de Longueur Variable
Bonjour à tous, futurs sorciers Python !aujourd'hui, nous allons entamer un voyage passionnant dans le monde des arguments arbitraires en Python. Ne vous inquiétez pas si vous êtes nouveau dans la programmation ; je serai votre guide amical et nous explorerons ce concept étape par étape. Alors, prenez vos baguettes virtuelles (claviers), et plongeons-y !
Arguments Arbitraires (*args)
Imaginez que vous planifiez une fête, mais vous ne savez pas combien d'amis viendront. Vous voulez être préparé pour n'importe quel nombre de invités. C'est exactement ce que font les arguments arbitraires dans les fonctions Python – ils vous permettent de gérer un nombre inconnu d'arguments !
En Python, nous utilisons *args
pour indiquer les arguments arbitraires. L'astérisque (*
) est le symbole magique ici, et args
est simplement une convention (vous pourriez utiliser n'importe quel nom, mais args
est largement utilisé et reconnu).
Regardons un exemple simple :
def saluer_amis(*args):
for ami in args:
print(f"Bonjour, {ami} !")
saluer_amis("Alice", "Bob", "Charlie")
Dans cet exemple, saluer_amis()
peut accepter n'importe quel nombre d'arguments. Lorsque nous exécutons ce code, il produira :
Bonjour, Alice !
Bonjour, Bob !
Bonjour, Charlie !
Mais que se passe-t-il si nous avions plus d'amis ? Pas de problème ! Nous pourrions facilement ajouter plus de noms :
saluer_amis("Alice", "Bob", "Charlie", "David", "Eve")
Et notre fonction les saluerait tous avec joie !
Comment *args Fonctionne
Lorsque vous utilisez *args
dans la définition d'une fonction, Python range tous les arguments dans un tuple. Vous pouvez ensuite itérer sur ce tuple à l'intérieur de votre fonction. C'est comme avoir un sac magique qui peut contenir n'importe quel nombre d'articles !
Exemple d'Arguments Arbitraires
Créons un exemple plus pratique. Supposons que nous voulons calculer la moyenne d'un nombre variable de scores :
def calculer_moyenne(*args):
if len(args) == 0:
return 0
total = sum(args)
moyenne = total / len(args)
return moyenne
print(calculer_moyenne(85, 90, 78))
print(calculer_moyenne(92, 88, 95, 78, 80))
Ce qui donnera en sortie :
84.33333333333333
86.6
Notre fonction calculer_moyenne()
peut gérer n'importe quel nombre de scores. Elle calcule la somme en utilisant la fonction intégrée sum()
, puis divise par le nombre de scores pour obtenir la moyenne.
Arguments Requis Avec Arguments Arbitraires
Parfois, vous pourriez vouloir avoir certains arguments requis avec des arguments arbitraires. Pas de souci ! Python est là pour vous. Vous pouvez mélanger des paramètres réguliers avec *args
. Juste souvenez-vous de mettre *args
à la fin :
def presenter_classe(enseignant, *etudiants):
print(f"Bonjour, je suis {enseignant}, et je serai votre enseignant.")
print("Présentons les étudiants :")
for etudiant in etudiants:
print(f"- {etudiant}")
presenter_classe("M. Johnson", "Alice", "Bob", "Charlie")
Ce qui donnera en sortie :
Bonjour, je suis M. Johnson, et je serai votre enseignant.
Présentons les étudiants :
- Alice
- Bob
- Charlie
Dans cet exemple, enseignant
est un argument requis, tandis que *etudiants
peut accepter n'importe quel nombre de noms d'étudiants.
Arguments de Mot-clé Arbitraires (**kwargs)
Maintenant, augmentons la difficulté ! Et si nous voulions passer des paires clé-valeur comme arguments ? Entrez **kwargs
(arguments de mot-clé) ! C'est comme *args
, mais pour des arguments nommés.
Voici un exemple simple :
def imprimer_info_utilisateur(**kwargs):
for cle, valeur in kwargs.items():
print(f"{cle} : {valeur}")
imprimer_info_utilisateur(nom="Alice", age=25, ville="New York")
Ce qui donnera en sortie :
nom : Alice
age : 25
ville : New York
Dans ce cas, **kwargs
crée un dictionnaire où les clés sont les noms des arguments et les valeurs sont les valeurs des arguments.
Arguments Multiples Avec Arguments de Mot-clé Arbitraires
Vous pouvez combiner des arguments réguliers, *args
, et **kwargs
dans une seule fonction. Juste souvenez-vous de l'ordre : arguments réguliers d'abord, puis *args
, et enfin **kwargs
.
Voici un exemple qui les rassemble tous :
def info_etudiant(école, *args, **kwargs):
print(f"École : {école}")
print("Matières :")
for matière in args:
print(f"- {matière}")
print("Informations Supplémentaires :")
for cle, valeur in kwargs.items():
print(f"{cle} : {valeur}")
info_etudiant("Python High", "Math", "Science", "Histoire", nom="Alice", age=16, classe="10e")
Ce qui donnera en sortie :
École : Python High
Matières :
- Math
- Science
- Histoire
Informations Supplémentaires :
nom : Alice
age : 16
classe : 10e
Résumé des Méthodes
Voici un tableau résumant les méthodes que nous avons discutées :
Méthode | Syntaxe | Description |
---|---|---|
Arguments Arbitraires | *args |
Permet à une fonction d'accepter n'importe quel nombre d'arguments positionnels |
Arguments de Mot-clé Arbitraires | **kwargs |
Permet à une fonction d'accepter n'importe quel nombre d'arguments de mot-clé |
Utilisation Combinée | def func(regular_args, *args, **kwargs) |
Combine des arguments réguliers avec les deux types d'arguments arbitraires |
N'oubliez pas, la puissance des arguments arbitraires réside dans leur flexibilité. Ils vous permettent de créer des fonctions plus polyvalentes qui peuvent s'adapter à différentes situations.
À mesure que nous terminons ce voyage magique à travers les arguments arbitraires, j'espère que vous vous sentez plus confiants en utilisant ces outils puissants dans vos sorts Python... Je veux dire, scripts ! Pratiquez l'utilisation de *args
et **kwargs
dans vos propres fonctions, et bientôt vous créerez des codes Python avec la souplesse d'un sorcier chevronné. Bon codage, et que vos fonctions soient toujours flexibles !
Credits: Image by storyset