Skip to content

Add

But de l'éxercice

Le but de l'exercice de cette semaine est d'ecrire une fonction add, dans un fichier add.py qui effectue l'addition entre deux matrices.

Et voila le script de tests unitaires: test_add.py

Exercice de base

Etant données deux matrices (liste de listes de nombres), retourner la matrice (liste de liste de nombres) résultant de l'addition des deux composants.

>>> m1 = [[1, 2], [3, 4]]
>>> m2 = [[4, 5], [1, 2]]
>>> add(m1, m2)
[[5, 7], [4, 6]]

Les matrices ne sont pas forcement carrées et leur taille n'est pas figée:

>>> m1 = [[1, 2], [3, 4], [1, 2], [1, 2]]
>>> m2 = [[4, 5], [1, 2], [1, 2], [2, 1]]
>>> add(m1, m2)
[[5, 7], [4, 6], [2, 4], [3, 3]]

Il faut éviter de résoudre ce problème en utilisant une bibliothèque tierce (numpy, ou pandas par exemple).

Il faut aussi faire en sorte de résoudre ce problème de la manière la plus pythonienne possible avant de regarder les bonus. Notament, il ne faut pas boucler avec des indexes...

Bonus numéro 1

Autoriser l'addition de n'importe quel nombre de matrices:

>>> m1 = [[1, 2], [3, 4]]
>>> m2 = [[4, 5], [1, 2]]
>>> m3 = [[-1, -2], [-1, -2]]
>>> add(m1, m2, m3)
[[4, 5], [3, 4]]

Bonus numéro 2

Faire en sorte que la fonction add lève une exception de type ValueError si les matrices ne sont pas de même dimensions:

>>> m1 = [[1, 2], [3, 4]]
>>> m2 = [[4, 5], [1, 2], [1, 2]]
>>> add(m1, m2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "add.py", line 10, in add
    raise ValueError("Given matrices are not the same shape.")
ValueError: Given matrices are not the same shape.

Aide

Si vraiment vous êtes bloqué.e.s, vous pouvez regarder ces articles:

Solution

Voir la solution