Exercices Fonctions & Modules Match case sur des listes
🎉

Bravo!

Avancé 🧠 Fondamentaux 30 XP 0 personnes ont réussi

Match case sur des listes

Le pattern matching fonctionne aussi sur les listes, et c'est la que ca devient vraiment puissant. Tu peux matcher sur le contenu d'une liste et extraire des valeurs.

Par exemple, pour parser des commandes :
match commande:
case ['quit']:
return 'Au revoir'
case ['say', message]:
return f'Tu dis : {message}'
case ['go', direction]:
return f'Tu vas vers {direction}'

Tu peux aussi utiliser *reste pour capturer un nombre variable d'éléments :
case ['add', *nombres]:
return sum(nombres)

Ici, *nombres capture tout ce qui suit 'add' dans une liste.

Écris une fonction exécuter(commande) qui prend une liste representant une commande et renvoie le résultat :
['help'] : 'Commandes : help, hello, add, repeat'
['hello', nom] : 'Bonjour nom !'
['add', *nombres] : la somme des nombres (qui sont des int)
['repeat', n, mot] : le mot repete n fois, separe par des espaces (n est un int)
tout autre chose : 'Commande inconnue'

Exemple :
exécuter(['hello', 'Alice']) renvoie 'Bonjour Alice !'
exécuter(['add', 1, 2, 3]) renvoie 6
exécuter(['repeat', 3, 'hey']) renvoie 'hey hey hey'

Tests (4/6)

Hello
assert exécuter(['hello', 'Alice']) == 'Bonjour Alice !'
Add
assert exécuter(['add', 1, 2, 3]) == 6
Repeat
assert exécuter(['repeat', 3, 'hey']) == 'hey hey hey'
Help
assert exécuter(['help']) == 'Commandes : help, hello, add, repeat'

+ 0 tests cachés

Indices (3 disponibles)

solution.py