Produire des documents intégrant du code Python
Pour concevoir des d'activités intégrant du code Python avec un affichage claire respectant et l'indentation, et les couleurs plusieurs solutions sont possibles.
- Jupyter
Jupyter est une application web utilisée pour programmer dans plus de 40 langages de programmation, dont Python . Jupyter permet de réaliser des notebooks, c'est-à-dire des programmes contenant à la fois du texte en markdown et du code en Python. Ces notebooks peuvent être convertis en fichiers Pdf ou Tex.
On peut l'installer seul (site officiel : https://jupyter.org/ ) mais il est intégré directement dans la solution anaconda (site officiel : https://www.anaconda.com/ ).
L'académie de Paris propose aussi un Jupyter en ligne, très utile : https://jupyter.scola.ac-paris.fr/hub/login
- Avec un traitement de texte classique.
On peut utiliser un traitement de texte de typer Word ou Open Office et y insérer des copies d'écran avec l'outil Capture d'écran (snipping tool) installé nativement sous windows.
- Lien : Support Windows
- Lien : Support Windows
- Sous un environnement LaTex.
Évidement il existe des packages permettant d'intégrer du code au format Python en respectant indentations et couleurs. De nombreuses incompatibilités subsistent entre les packages, comme souvent sous LaTex mais voici quelques possibilités.- Avec le package Listings
- Une documentation : http://borntocode.fr/latex-comment-inserer-et-customiser-du-code-source/
- Une solution possible proposée par Nicolas Poulain : lien sur Overleaf .
- Avec le package minted qui est une amélioration de Listings (bien plus simple en fait)
- Une documentation : https://ctan.org/pkg/minted /
- Un exemple : lien overleaf .
- Un tutoriel : https://zestedesavoir.com/tutoriels/1848/presenter-du-code-source-dans-un-document-latex/
- Avec le package Listings
- Dans une page web
On peut intégrer du code via le site http://hilite.me/
Un exemple :
import random import matplotlib.pyplot as plt # def echantillon(n): return [random.randint(1,6) for i in range(n)] # fig = plt.figure() plt.hist(echantillon(100),12, density=0, facecolor='b', alpha=1) # density = 1 : pour les fréquences # density = 0 : pour les occurences fig.savefig('graph.png') # ou plt.show() sur anaconda