Exercices Fonctions & Modules *args et **kwargs
🎉

Bravo!

Intermédiaire 🧠 Fondamentaux 20 XP 0 personnes ont réussi

*args et **kwargs

Quand tu crées des fonctions utilitaires ou des wrappers génériques, tu veux souvent accepter n'importe quel nombre d'arguments sans les connaître à l'avance. C'est le rôle de *args (tuple des positionnels) et **kwargs (dict des nommés).

Exemple :
def exemple(*args, **kwargs):
print(args) tuple des positionnels
print(kwargs) dict des nommés

exemple(1, 2, nom="Alice") args=(1,2), kwargs={'nom':'Alice'}

Écris une fonction resumer(*args, **kwargs) qui retourne un dictionnaire avec :
nb_positionnels : le nombre d'arguments positionnels
somme_positionnels : la somme des args (tous numériques)
cles_nommees : la liste triée des clés des kwargs

Exemple :
resumer(1, 2, 3, nom="Alice", ville="Paris")
renvoie {"nb_positionnels": 3, "somme_positionnels": 6, "cles_nommees": ["nom", "ville"]}

Tests (2/4)

Plusieurs args et kwargs
r = resumer(1, 2, 3, nom='Alice', ville='Paris')
assert r['nb_positionnels'] == 3
assert r['somme_positionnels'] == 6
assert r['cles_nommees'] == ['nom', 'ville']
Sans arguments
r = resumer()
assert r['nb_positionnels'] == 0
assert r['somme_positionnels'] == 0
assert r['cles_nommees'] == []

+ 0 tests cachés

Indices (3 disponibles)

solution.py