Résultats de recherche pour : latex python

Quel environnement utiliser pour coder en Python?

Vouloir coder en Python, c’est bien joli mais il faut aussi trouver un environnement adapté pour prendre plaisir à le faire. Il faut donc trouver l’IDE (Integrated Development Environment) qui colle bien à ce qie l’on veut, et comme personne ne se ressemble, l’IDE qui convient à Paul ne conviendra pas à Émilie. Je vais donc tenter de vous exposer quelques IDE afin que vous fassiez le tri.

IDE natif : IDLE

En installant Python, un IDE (appelé IDLE) est automatiquement installé. Il est léger et fait le boulot, mais il n’est pas convivial. La fenêtre qui s’ouvre est une fenêtre console: on peut y écrire directement du code Python:

IDE natif de Python

On peut ouvrir un fichier dans une autre fenêtre (avec la combinaison [Ctrl] + [O]) et en appuyant sur [F5], on peut lancer le script, qui s’exécute alors dans la fenêtre console. L’inconvénient qui pourrait être perçu comme majeur est donc le fait que deux fenêtres sont nécessaires, ce qui peut paraître peu pratique.

IDE Visual Studio Code (VSC)

Cet IDE est une parade à l’inconvénient cité précédemment: on peut y exécuter du code et voir le résultat dans une même fenêtre (coupée en plusieurs cadres). Il faudra tout de même télécharger un plugin qui lui permettra d’interpréter du code Python, mais cela se fait assez simplement. Il suffit de taper du code et de sauvegarder le fichier en .py, et l’IDE propose automatiquement de télécharger ce qu’il faut. Sinon, il y a à gauche de l’écran une icône “extension” qui, lorsque l’on clique dessus, nous permet de chercher des plugins en relation avec Python:

IDE Visual Studio Code

À mes yeux, cet IDE est un peu plus pratique de l’IDLE, mais il y a un inconvénient: le script ne se lance pas en appuyant sur une touche (comme [F5]). En effet, il faut cliquer avec le bouton droit de la souris sur le script que l’on souhaite lancer, puis sélectionner “Run Python file in terminal” (le terminal étant le cadre du bas). Autre inconvénient, il n’y a pas de cadre “console”, ce qui est peu pratique quelques fois…

IDE Python Pyzo

Cet IDE est léger, donc rapide à se lancer (comme VSC), mais son interface par défaut est légèrement moins belle…

Interface Pyzo

On voit que la fenêtre est découpée par défaut en 4 : à gauche, un cadre pour le script, à gauche et en haut, un cadre console et à gauche en bas, des cadres informatifs. C’est sans doute l’un des meilleurs IDE Python pour un usage d’enseignement. Cependant, j’ai constaté des bugs dès lors que les scripts étaient plus poussés. Certains fonctionnant très bien avec l’IDLE ne fonctionnent pas avec Pyzo… Quel dommage !

IDE Python Spyder

Cet IDE est extrêmement lourd (il met très longtemps à se charger) et n’est pratiquement disponible que si l’on installe Anaconda (un environnement très lourd lui aussi). Si tout ça est lourd, c’est que c’est assez complet et je dois bien avouer que c’est un très bon IDE Python. Cependant, j’ai cessé de l’utiliser car il est vraiment très long à se charger et le fait de devoir obligatoirement passer par Anaconda ne me plaît pas non plus (je n’aime pas que l’on m’impose quoi que ce soit !).

IDE Python Thonny

Cet IDE est, à l’instar de Pyzo, très léger. Je ne l’ai pas encore testé sur du long terme, mais une fois installé, je l’ai testé sur un script qui pourrait posé problème et il a bien fonctionné (mieux que VSC). Il faut juste penser à changer l’interpréteur (par défaut, Thonny semble installer Python 3.7 alors que j’étais sous Python 3.8).

Interface Thonny

Et cerise sur le gâteau, il est facile de paramétrer l’éditeur pour un visuel à notre convenance… Pour moi, ce sera:

Interface Thonny customisée

Quelques articles qui traitent de Python

Mesure principale d’un angle avec Python

Dans les programmes de 1ère Spécialité Math, il est question de trigonométrie… Et c’est la période de l’année où les professeur.e.s peuvent aborder cette notion avec leurs élèves. J’ai donc voulu écrire un programme Python permettant de trouver la mesure principale d’un angle s’écrivant sous la forme \(\displaystyle\frac{a\pi}{b}\), c’est-à-dire la mesure comprise dans l’intervalle \(]-\pi;\pi]\) équivalente à celle donnée modulo \(2\pi\).

Une enveloppe astroïdale obtenue en Python avec Turtle

L’enveloppe de cette famille de cercles est une astroïde

L’objectif de cet article est de construire cette suite de cercles rouges à l’aide de Python et de son module Turtle.

Approche mathématique

Avant toute chose, il est nécessaire de comprendre comment sont obtenus tous les cercles rouges.

Si on regarde et analyse bien la figure, les tracés suggèrent que pour un angle \(\alpha\) donné, exprimé en degré, on trace un segment d’origine O (si on se place dans un repère, c’est l’origine) et d’angle \(\alpha\), qui coupe l’un des côté du carré inscrit dans le cercle principal.

Prenons le côté en haut à droite (donc dans le cadran x > 0 et y > 0 si on se ramène à un repère). Il a pour équation \(y=-x+R\) si on considère que le cercle principal a pour rayon \(R\). Notons I le point d’intersection de la droite d’équation \(y = x\tan(\alpha)\), qui forme un angle de \(\alpha\) avec l’horizontale, avec le segment d’équation \(y=-x+R\). Alors, ses coordonnées vérifient:$$\begin{cases}y_I=-x_I+R\\y_I=x_I\tan(\alpha)\end{cases} $$Donc:$$x_I\tan(\alpha)=-x_I+R$$d’où:$$x_I=\frac{R}{\tan(\alpha)+R}.$$

Une fois les coordonnées de I connues, on calcule la longueur IM, où M est le point du cercle principal de coordonnées \(R\cos\alpha;R\sin\alpha)\), à l’aide de la formule vue en classe de Seconde:$$IM = \sqrt{(x_I-x_M)^2 + (y_I-y_M)^2}.$$On peut alors tracer le cercle de centre I et de rayon IM : c’est un des cercles rouges.

Avec Turtle

Il faut faire appel à quelques méthodes du module Turtle; inutile donc d’écrire:

from turtle import *

En effet, le mieux est de n’importer que les méthodes qui nous intéressent. Il en est de même pour le module math, où seules les méthodes sin, cos, tan et pi sont nécessaires (pour la racine carrée, on élève à la puissance 0.5).

On commence donc par tracer un cercle (avec Turtle, c’est un peu… comment dire poliment ? … je trouve pas ! Désolé !) en se déplaçant d’abord en bas de la fenêtre puis en traçant le cercle. Ensuite, on en profite pour tracer le carré inscrit dans le cercle (avec “goto”, comme le stylo est déjà baissé, ça trace les segments).

Maintenant, on fait une boucle itérative sur l’angle variant de 0 à 359. Si vous observez bien, je ne me suis pas embêté avec les cas où l’angle est égal à 90°, 180° et 270° car ça n’a que peu d’importance au final du point de vue visuel). En fait 180° ne pose pas de problème pour la tangente, mais peu importe… Ouais, je suis une grosse feignasse !…

Remarquez aussi que j’ai pris \(R=300\) car la fenêtre par défaut fait 800×800. “300” me semblait un bon compromis. Voilà donc le programme:

Alors là, les plus observateurs.trices. d’entre vous me diront : “t’es qu’un charlatant ! Le GIF n’est pas exactement ce que fait ce programme…” et c’est vrai ! C’est en fait un ancien GIF qui traînait sur mon disque dur… quand je vous disais que j’étais une grosse feignasse !

En attendant, si vous souhaitez télécharger le programme directement plutôt que de vous embêter à le réécrire à la main, c’est sur cette page.

Ajuster en largeur un listing sous \(\LaTeX\)

Cet article est inspiré du post du forum mathematex dont l’adresse est : http://forum.mathematex.net/latex-f6/cadre-pour-algorithme-python-avec-listings-t17255.html

L’idée est ici de créer un environnement “python” (par exemple) qui permet d’écrire un code Python et de le présenter encadré de sorte que le cadre soit ajusté en largeur (ce qui n’est pas le cas par défaut car le cadre tient sur toute la largeur).

Les classes en Python

Dans le programme de Terminale NSI, la notion de classes Python apparaît. En 1ère, on ne doit pas en parler car la Première est une classe d’initiation. Comment se présente une classe ? Et en quoi peut-elle aider ? Voici quelques éléments de réponse.

Construire le graphe d’une suite avec Python

Dans cet article, nous allons nous intéresser à la construction du graphe d’une suite définie par \(u_{n+1}=f(u_n)\).

Mon objectif est de créer un programme Python qui demande à la personne utilisatrice :

  • la fonction;
  • le premier terme de la suite;
  • le nombre de termes à construire;
  • la fenêtre \( (x_{\min}) \), \( (x_{\max}) \), \( (y_{\min}) \) et \( (y_{\max}) \);
  • le nom sous lequel la figure sera sauvegardée (vide si on ne souhaite pas la sauvegarder).

Un programme de sauvegarde en Python

Je ne sais pas ce qu’il en est pour vous, mais les programmes de sauvegardes qui existent ne me satisfont pas trop car ne répondant pas à mes attentes bien spécifiques.

Aussi ai-je souhaité créer un programme de sauvegarde qui fait exactement ce que je veux.

Pour les abonné.e.s de mathweb, le programme se trouve sur cette page.

Python et ensembles de Julia

L’ensemble de Julia est, pour un nombre complexe c donné, l’ensemble des points d’affixes \(z_0\) tels que la suite définie pour tout entier naturel n par \(z_{n+1}=z_n^2+c\) est bornée.

Selon les valeurs de c, on peut obtenir des ensembles plutôt jolis:

Pour les personnes abonnées à mathweb.fr, vous trouverez un code Python ainsi que les 10 images (sans marquage) sur cette page.

Ensemble de Mandelbrot et Python

Pour la faire courte, l’ensemble de Mandelbrot est l’ensemble des points du plan complexe d’affixe c tels que la suite définie par \( \left\lbrace\begin{array}{l} z_0=0\\z_{n+1}=z_n^2+c\end{array}\right. \) est bornée.

Cet ensemble peut être construit à l’aide de Python, et de son module pygame. La vitesse à laquelle l’ensemble est construit est remarquable! Sur mon ordinateur (16 Mo RAM, sous Windows, processeur Intel Core i5), cela ne met pas plus de 10 secondes pour afficher ceci:

Ensemble de Mandelbrot réalisé avec Python

Avec une autre suite, j’ai obtenu:

Fractale réalisée avec Python

Je vous l’accorde, elle est nettement moins esthétique que la première, mais je ne suis pas Julia, ni Fatou 🙂

Les abonné.e.s de mathweb.fr trouveront les codes Python de ces deux fractales sur cette page.

Chiffrement de Hill en Python

Nous allons encore une fois parler cryptographie dans cet article. Dans l’article précédent, je vous parlais du chiffrement affine, le chiffrement le plus nul après le chiffrement de César, mais cette fois-ci, on va lever le niveau…