Chapitre 7 : La puissance des opérateurs
Exercices
1) Nombres complexes
Écrivez une classe décrivant des nombres complexe. Celle-ci devrait contenir les éléments suivants:
- Une partie réelle et imaginaire
- Une méthode init, repr et une documentation comme pour toute classe digne de ce nom
- Une addition, multiplication et division à droite avec d'autres nombres complexes
- Une addition, multiplication et division à gauche et à droite avec des entiers
- La fonction
__abs__
retournant le module du nombre - Les opérateurs >, <, <=, >= (agissant sur le module, bien évidement)
- Les opérateurs
==
et!=
- Une méthode retournant les coordonnées polaires correspondant à ce nombre
Commentaire : Le but de cet exercice est d'implémenter des opérateurs, pas de simples méthodes. Une fois l'exercice effectué, ce genre de code devrait pouvoir tourner sans problème :
i = complexe(0,1)
c1 = 5+3*i
c2 = 7-2*i
print(c1 + c2)
print(3*c1 - c2/c1)
Pour plus d'information sur ces opérateurs, allez voir les méthodes magiques de python.
Attention En python3, la division n'est pas l'opérateur __div__
, mais bien __truediv__
.
2) En finir avec les vecteurs
Adaptez votre classe vecteur pour qu'elle aie les méthodes suivantes :
__repr__
- addition, soustraction
- multiplication (produit scalaire si avec un autre vecteur)
- division
-
__abs__
retournant la norme du vecteur - Une fonction retournant le produit vectoriel
- Une fonction retournant les coordonnées polaires
N'oubliez pas de renvoyer une exception si l'utilisateur tente une opération qui n'a mathématiquement aucun sens (diviser par un autre vecteur ou effectuer un produit vectoriel dans un espace à 8 dimensions par exemple...)
Testez ensuite le fonctionnement de votre classe.