UKOnline

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.

Exemple d'utilisation de sympy avec l'interpréteur Python
La librairie SymPy peut être directement utilisée dans une console pour réaliser des calculs, grâce au mode interactif de Python, une fois le module importé.

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 fonction expand 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 de sympy qui calcule $(x + 1)^2$ comme résultat.
  • Enfin, la dernière opération utilise la méthode simplify de sympy 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.

Affichage textuel amélioré Unicode
Avec l'application Terminal de macOS, la fonction init_printing active le mode d'affichage textuel amélioré Unicode.

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.

Affichage LaTeX avec IPython dans une console QT
La console interactive IPython propose des fonctionnalités plus avancées que celles proposées de base avec l'interpréteur Python, notamment la coloration syntaxique du code, voire même l'affichage des mathématiques avec LaTeX lorsque l'on combine IPython avec une console QT.