Informatique et sciences du numérique

Python

Mise à jour : 10 novembre 2016

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 :

Environnements de développement

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 !

Hello World

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

Visuel de la saisine de l'administration par voie éléctronique
Visuel du bouquet de services académiques

Contacts et services