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 :
- Stackless, une version de cpython n'utilisant pas la pile d'appel du langage C
- Jython, un interpréteur python pour machine virtuelle Java,
- un compilateur (expérimental) pour Parrot, la machine virtuelle de Perl 6.
- IronPython, un interpréteur / compilateur (expérimental) pour plateforme .Net / Mono
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
- Association Francophone Python : http://www.afpy.org
- Portail Python francophone : http://www.python-fr.org
- Présentation rapide du python par linux center : http://www.linux-center.org/articles/9812/python.html
- Un cours de Python pour débutants sous licence GFDL : http://www.ulg.ac.be/cifen/inforef/swi/python.htm
- Un livre d'apprentissage de Python pour programmeurs expérimentés sous licence GFDL :
- Le site officiel (en anglais) du langage est http://www.python.org.
- Une liste de ressources en français est disponible à la page http://www.python.org/doc/NonEnglish.html#french
- Une liste de liens avec les ressources majeurs sur Python en Français et en Anglais : http://www.python-eggs.org/links.html
- Introduction au langage Python première partie : Labo-Linux: Python 1
- Introduction au langage Python deuxième partie : Labo-Linux: Python 2
