Python
Python est un langage de programmation qui allie puissance et facilité d’apprentissage, souvent cité sur internet comme étant le langage pour apprendre à programmer.
Fiche d’identité
Apparu en | 1991 |
---|---|
Auteur | Guido van Rossum (Pays-Bas) |
Système d’exploitation | Multiplate-forme |
Licence | Python Software Foundation License (Compatible GPL) |
Exécution | Interprété via Byte-code |
Paradigmes | Orienté objet, impératif, fonctionnel, procédural, réflectif |
Typage | Fort, dynamique |
Influencé par | ABC, C, ICON, Modula-3, Perl, Smalltalk, Tcl |
À influencé | Ruby, Groovy, Boo |
Extension de fichier | .py .pyw |
Particularités
La principale particularité de Python est de posséder une indentation significative, c’est-à-dire que les blocs d’instructions sont déterminés par leur décalage par rapport à la marge gauche, et non par une paire d’accolades {...} comme dans beaucoup de langages. Cela peut paraître déroutant, mais cela permet d’écrire du code lisible car très bien présenté.
L’autre caractéristique de python est d’être orthogonal : il est défini par un nombre minimal de mots clés, il n’y a pas de redondance. Ainsi, les structures « switch...case » et « repeat...until » n’existent pas car elle peuvent être remplacées par des clause « if » et ou des boucles « while ». Une conséquence directe est qu’en général, il n’y a qu’une seule manière simple d’écrire un algorithme en Python.
Pour les élèves, cette caractéristique facilite l’apprentissage, et évite d’avoir plusieurs solutions correctes à un problème donné, qui peut être une source de confusion.
Python est un langage très explicite : il n’y a pas de mécanismes cachés ou « automagiques » et dont le résultat dépend du contexte d’exécution. Python fait ce qui est écrit, un point c’est tout, ce qui fait qu’un programme python est facile à relire.
Python ne possède pas de pointeurs et gère lui-même toutes les allocations de mémoire grâce à son « ramasse-miettes ». De plus, il détermine seul le type des données utilisées (typage dynamique). Cependant, il ne permet pas les conversions implicites (« cast ») comme en C ou en Php (typage fort).
Un très grand nombre de bibliothèques sont disponibles pour Python, ce qui permet de développer facilement des projets de haut niveau sans avoir à coder beaucoup de chose. Voici quelques exemples :
- PIL : manipulation d’images
- scipy et numpy : calculs scientifiques
- matplotlib : réalisation de graphiques scientifiques
- twisted : applications client/serveur
- pyserial : accès aux ports série
- pygame : permet de réaliser des jeux : graphisme 2D, son, clavier, souris, timer...
Python est installé avec son propre IDE : Idle. Simple mais un peu rustique.
Un simple éditeur de texte permet de travailler avec Python, de préférence avec coloration syntaxique tel que notepad++ ou SciTe.
Un IDE intéressant est Spyder : très complet, il intègre très bien les fenêtres créées par matlpotlib ce qui en fait un substitut à Matlab.
Il existe un plugin pour Eclipse, pydev, qui permet d’utiliser toute la puissance d’Eclipse pour des projets Python.
Sous Windows, un projet très intéressant est Python(x,y). Il regroupe en un seul fichier (certes un peu gros : 420 Mo) tout ce qu’il faut pour utiliser python dans un cadre scientifique : python, des IDE (eclipse, spyder, scite...) et des dizaines de bibliothèques à vocation scientifique... À voir absolument !
Créer un fichier hello.py contenant :
print "Hello world"
pour l’exécuter, taper la commande :
> python hello.py
ou double-cliquer sur hello.py
Avantages
- Facile à apprendre
- Programmes faciles à relire
- Débogage simple
- Un simple éditeur de texte est suffisant pour programmer
- Très puissant
- Très grand nombre de bibliothèques disponibles
Inconvénients
- Langage interprété, donc plus lent en théorie, mais ce défaut est largement compensé par la rapidité de développement.
- Encore peu répandu dans les lycées, sauf auprès des professeurs de mathématiques.
- La nouvelle version python 3 est partiellement incompatible avec les versions 2.
Liens
- Python 2.7
- Python(x,y)
- Entreprises utilisant Python : www.python.org/about/success/
- Documentation en ligne :
- Documentation officielle : http://docs.python.org/
- Tutoriel officiel : http://docs.python.org/tutorial/index.html
- Tutoriel intéressant : Dive into Python
- Livre de Gérard Swinnen, professeur d’informatique en Belgique : Apprendre à programmer avec Python
- Utilisation de Python en mathématiques dans l’académie d’Amiens : AmiensPython
Pour information
Python est souvent utilisé en mathématiques pour l’algorithmique en seconde, première et terminale, notamment dans l’académie :
ÉduPython