Python (langage)

Image manquante
Langage_progr.png
image:Langage_progr.png

Cet article fait partie de la série
Langages de programmation
Langages à objets
Ada 95 - C++ - C#
Common Lisp
Delphi - Eiffel - Java
Nice - Oz - Python
Simula - Smalltalk
Visual Basic
Langages impératifs
APL - ASP - Assembleur
BASIC - C - COBOL
Forth - FORTRAN - Logo
Pascal - Perl - PHP
Langages fonctionnels
Erlang - Haskell
ML/OCaml - Oz
Lisp/Common Lisp
Scheme
Langages déclaratifs
Clips - Oz - Prolog
Langages concurrents
Ada 95 - Erlang
Java - Oz
Langages balisés
HTML - SGML - XML
Dialectes XML
S-expressions
Voir aussi
Conception - Codage
Tests - Optimisations

Python est un langage de programmation interprété, multi-paradigme, ce qui signifie qu'il autorise la programmation impérative structurée, orientée objet, et fonctionnelle. Il est doté d'un typage dynamique (ce qui ne l'empêche pas de disposer d'un typage fort), d'une gestion automatique de la mémoire par ramasse-miettes et d'un système de gestion d'exceptions.

Sommaire

Origine du nom

Créé en 1989 par Guido van Rossum, ce langage trouve l'origine de son nom dans la série télévisée humoristique des Monty Python. D'autre part on voit souvent un python (serpent) représenté en tant que symbole pour parler du langage de programmation, même si l'auteur (Guido) a lui-même expliqué qu'il ne faisait en aucun cas référence au célèbre reptile. L'animal étant plus célèbre que le groupe de joyeux comédiens Monty Python, il n'a eu aucun mal à s'imposer partout. C'est ainsi que le site officiel Python.org utilise également l'icône du serpent. Autre clin d'œil, le navigateur Internet programmé par Guido entièrement en python s'appelle Grail en référence au film : Monty Python and the Holy Grail, hébergé sur sourceforge http://grail.sourceforge.net/ Il est toujours de bon ton de faire référence aux gags de la troupe, dans la programmation en Python.

Caractéristiques du langage

Une syntaxe simple, des types de données de haut niveau et des bibliothèques extensives rendent ce langage très attractif pour le développement rapide d'applications, comme langage d'extension d'applications, pour le développement de scripts, ou encore comme interface permettant de connecter des composants existants. Il est également utilisé pour programmer le serveur d'applications Zope. Sa syntaxe facilite son apprentissage et en fait un candidat idéal pour l'apprentissage de la programmation orientée objet.

Ceux qui connaissent ou ont connu le BASIC auront peu de difficultés à programmer en Python.

Les langages de script comparables à Python sont Perl, Ruby et Rexx.

L'interpréteur Python est lui-même écrit en C. Il existe une version écrite en Java appelée Jython.

Syntaxe

Les blocs sont identifiés par des tabulations ou des espaces. Il n'y a pas d'accolades comme en C/C++, ou de Begin ... End comme en Pascal.

La syntaxe de Python est inspirée du langage C, contrairement à celle de Perl qui est basé sur le shell Unix. Le but des concepteurs de Python est d'obliger le programmeur à écrire un code lisible, à l'opposé de ce qu'on peut obtenir avec Perl, ce qui en fait un excellent langage pédagogique.

Implémentations

Le langage Python est placé sous une licence libre (copyleft). L'interpréteur Python est aujourd'hui disponible sur la majorité des plates-formes existantes (Amiga, *BSD, GNU-Linux, Mac OS, Windows).

À l'instar de Perl, une des grandes forces du langage réside dans l'existence d'une bibliothèque standard très complète et d'un nombre important de bibliothèques externes. La bibliothèque standard supporte notamment de nombreux protocoles en usage pour la création de sites internet.

Outre l'implémentation de référence, nommée cpython (car écrite en langage C), on peut relever d'autres systèmes implémentant le langage python :

Attention, ces autres implémentations ne bénéficient forcément pas de la totalité de la bibliothèque de fonctions écrites en C pour l'implémentation de référence. Jython, d'un autre côté, a accès aux bibliothèques fournies avec l'environnement de développement Java.

Exemples

Classe

Exemple de classe (voir programmation orientée objet).

 class Pomme(Fruit):
     Mangeurs = ("Jacques", "Nicolas")
     def __init__(self, couleur):
         Fruit.__init__(self)
         self.colorie = couleur
     def couleur(self):
         return self.colorie
     def comestible(self, nom):
         if nom not in self.Mangeurs:
             print nom, "n'aime pas les pommes"
         else:
             print nom, "mange des pommes"
 

Vous pouvez comparer cet exemple à son équivalent en Ruby.

Tkinter

Cet exemple montre comment se servir de la bibliothèque TKinter pour créer une interface graphique.

 fen = Tk()
 text1 = Label(fen, text='Bonjour !')
 entr1 = Entry(fen)
 bout1 = Button(fen, text='Quitter', command=fen.quit)
 text1.grid(row=1, column=1)
 entr1.grid(row=1, column=2)
 bout1.grid(row=2, column=1)
 fen.mainloop()
 

Implémentation du crible d'Ératosthène

Ce script calcule les nombres premiers inférieurs à 200 en appliquant la méthode du crible d'Ératosthène.

 # on va calculer les nombres premiers inferieurs a N
 N = 200
 
 # on genere la liste des entiers naturels entre 2 et N
 liste = range(2, N)
 
 #on commence par le nombre 2
 nombre = 2
 
 # tant que le nombre premier est inferieur a la racine carree de N
 while (nombre*nombre <= N):
 
     # on parcourt la liste a partir de ce nombre
     for i in liste[liste.index(nombre) + 1:]:
 
         # a chaque fois qu'on rencontre un multiple du nombre
         if i % nombre == 0:
 
             # on le raye de la liste
             del(liste[liste.index(i)])
 
     # on prend le nombre suivant non raye
     nombre = liste[liste.index(nombre) + 1]
 
 # et a la fin, on affiche le resultat
 print liste
 

Voir aussi

Articles connexes

Liens externes

http://diveintopython.org/

See also: Python (langage), 1989, APL (langage), Active server pages, Ada (langage), Amiga, Assembleur (langage), Basic, Berkeley Software Distribution