Console interactive
L'écosystème Scipy étant un ensemble de librairies Python, on peut l'utiliser directement à partir du moment où les modules correspondants sont importés. La figure 4 montre un exemple d'utilisation de la librairie SymPy, depuis le mode interactif de l'interpréteur Python.
La première instruction importe tout le contenu du module sympy
, qui permet de réaliser du calcul symbolique. La deuxième instruction déclare ensuite deux nouveaux symboles, $x$ et $y$, utilisables dès ce moment dans des calculs. On réalise ensuite quatre opérations :
- La première calcule la valeur de $2(x + y)$, que
sympy
simplifie automatiquement en $2x + 2y$ en appliquant une distribution du $2$ sur la somme. - La deuxième demande à
sympy
de développer $(x + y)^2$ à l'aide de la fonctionexpand
qui produit $x^2 + 2xy + y^2$ comme résultat. - La troisième opération fait l'inverse, c'est-à-dire que l'on va factoriser $x^2 + 2x + 1$ à l'aide de la fonction
factor
desympy
qui calcule $(x + 1)^2$ comme résultat. - Enfin, la dernière opération utilise la méthode
simplify
desympy
pour lui demander de tenter de simplifier $sin^2(x) + cos^2(x)$, ce qu'elle parvient à faire se rappelant que ça vaut $1$.
Ce premier exemple d'utilisation de l'écosystème SciPy montre tout son potentiel, notamment celui de la librairie SymPy pour faire des calculs sur base de symboles. Profitant du mode interactif de Python, on peut directement mettre les mains à la pâte. L'affichage est certes un peu rudimentaire, mais les résultats sont là !
On peut améliorer cela en utilisant un afficheur spécifique. Il en existe plusieurs définis pour SymPy que l'on peut activer simplement avec la fonction init_printing
. Cette dernière choisit automatiquement le meilleur mode d'affichage selon le terminal dans lequel vous êtes. La figure 5 montre le mode d'affichage textuel amélioré Unicode, supporté par l'application Terminal de macOS.
Utiliser le mode interactif basique de Python montre vite ses limites. La librairie IPython, associée à l'écosystème SciPy, permet d'aller plus loin en offrant un mode interactif plus avancé. Sans rentrer dans tous les détails, IPython propose l'auto-complétion, la mémorisation de l'historique des commandes d'une session à l'autre, la coloration syntaxique, l'affichage de la documentation des fonctions, etc.
Combiné avec le module pyqt5
, IPython permet également un affichage encore plus avancé en utilisant LaTeX pour les formules mathématiques. La figure 6 montre la console interactive IPython lancée dans une console QT. On voit bien que le rendu obtenu est de meilleure qualité et que LaTeX est utilisé pour les formules mathématiques.