Python : la programmation
Python : la programmation
Je l’ai dit ailleurs, je n’étais pas très chaud pour faire du programme au lycée, à cause de la lourdeur et la spécificité de la syntaxe propre à chaque environnement de programmation.
L’institution a tranché, Python est devenu l’outil «officiel» et fait partie du programme.
Et au final, comme d’habitude, j’ai fait cette année (vu les déficiences assez abyssales des mes élèves, notamment les terminales) un petit mémo qui balaye tous les aspects de python abordés en lycée (avec l’environnement simplifié Idle, voir plus bas), incluant un rappel des notions de base d’algorithmique, et avec un beau sommaire cliquable pour ne pas perdre de temps à chercher une info :
Je travaille sur du Mac et du Linux, Python y est implémenté par défaut, mais sans vraie interface (ça se passe dans un terminal X…). J’ai choisi l’environnement le plus simple possible : IDLE. Il y a une fenêtre pour l’interpréteur et d’autres pour l’éditeur, une pour chaque fichier script ouvert. L’éditeur est quand même assez sympa : syntaxe colorisée, bulles d’aide, et auto-complétion des commandes. Quand un script est écrit, on enregistre, et on appuie sur F5 pour l’exécuter dans l’interpréteur. C’est pratique et rapide. Sous Linux, il faut télécharger Idle.
Sous Mac, il est implémenté, mais en version 2.7. Pour installer Python 3.x et Idle sur un Mac récent, ne suivez surtout pas les tutos qui vous demandent d’installer Xcode (des Go de fatras inutiles pour qui ne programme pas sur un Mac) et autres choses. Allez au plus simple :
1/ Allez sur le site officiel python.org https://www.python.org/downloads/ et téléchargez la dernière version pour Mac.
2/ Double-cliquez le fichier obtenu, python et Idle s’installent tout seuls. Lancez Idle, la version de Python est affichée dans votre fenêtre shell : on va la nommer 3.x pour la suite (ex : 3.10, ne pas mettre le n° de sous version dans les commandes suivantes)
3/ Les modules de base (math, random, time par ex) sont installés avec le pack ; pour les modules complémentaires (j’ai ajouté numpy et matplotlib), allez dans le terminal du Mac (pas la console Python !) et tapez :
python3.x -m pip install numpy
python3.x -m pip install matplotlib
Faites pareil avec les autres modules que vous désirez installer.
Voilà, c’est immédiatement opérationnel et l’installation du tout prend 3min max.
Visiblement, au lycée, c’est edupython sous Windows qui semble privilégié. Ca se veut convivial, je trouve ça juste plus lourd pour des débutants… Je l’ai installé sur un système Linux via Wine (programme qui permet de faire tourner les applications Windows sous Linux). L’interface est celle d’un outil de développement assez avancé, soit un gros machin plein de boutons et de fenêtres : pas très cool pour des élèves qui y passeront au mieux quelques heures dans l’année et qui ne dépasseront pas les 10 lignes de code pour chaque programme. Je préfère nettement Idle dans ce contexte. NB : Idle est implémenté avec Python sous Windows, il suffit d’aller le chercher dans le menu des applications.
Bref, je voyais Python comme une corvée, et finalement, j’aime plutôt bien pour faire des petits algos vite fait selon les besoins. C’est quand même beaucoup plus souple d’utilisation qu’Algobox quand on connaît les rudiments de base. (mais attention, je ne renie pas mon avis sur Algobox pour les élèves qui débutent !) Par contre, les élèves n’aiment pas…
Je me suis concocté des petits fichiers mémo version Mac et Linux (pour Windows, ils sont ici —éternel problèmes d’encodage des fichiers texte) que je donne aux élèves, concernant les différents chapitre de l’algorithmique (variables, E/S, test, boucles, et fonctions) : il y a toute la base de la syntaxe, mais juste la base pour du calcul (rien sur les chaînes de caractères ni sur les listes dans un premier temps).
Quand j’ai un trou de mémoire, j’ouvre ces fichiers et je fais du copier/coller dans mon script.
Voici quelques copies d’écran ( eeepc 701, toujours vivant et actif :) pour illustrer. On remarquera l’éditeur avec les bulles d’aide pour la syntaxe (in english, yes sir…), et la fenêtre de l’interpréteur (shell). On note que Python est capable de travailler nativement avec de très grands nombres.
Quelques exemples…
Avantage évident sur Algobox : les sorties sont beaucoup plus simples à implémenter (exemple du PGCD)
Pour aller plus loin…
Python est un environnement complet de programmation orienté objet, c’est super puissant et ça permet de créer des applications autonomes capables de tourner sous divers systèmes d’exploitation.
Plus près de ce qui nous intéresse ici, c’est un logiciel de calcul apparemment très prisé des scientifiques. Il existe des extensions très puissantes permettant de travailler dans divers domaines scientifiques.
J’ai un peu regardé (pas beaucoup il faut dire…), je préfère Octave (les fans de Python le présentent comme un substitut à Matlab/Octave), car la syntaxe de calcul matriciel est naturelle, alors qu’avec Python, on doit recourir à des fonctions spécifiques, c’est moins pratique à mon sens, la syntaxe est lourde. De plus, on peut se fabriquer très simplement des fonctions additionnelles avec Octave, il suffit de les utiliser sans formalités dans un script ou dans la fenêtre de commande ; avec Python, il faut d’abord faire un package, et ensuite l’appeler dans le script avant de l’utiliser : plus lourd.
Sur un petit algo (calcul de pi par une méthode d’Euler : la somme des inverses de carrés des entiers), j’ai noté un avantage de rapidité d’un facteur 4 à 5 pour Python sur Octave. Par contre, au début ou j’ai utilisé Octave, celui-ci était beaucoup plus lent que Matlab => à voir…
Après, Python a un champ d’action plus large (programmation objet), mais si on doit faire juste du calcul avec des gros tableaux à multiples dimensions, Octave est plus pratique.