IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Python, de zéro


précédentsommairesuivant

I. Introduction

Python est un langage portable, dynamique, extensible, gratuit, qui permet (sans l'imposer) une approche modulaire et orientée objet de la programmation. Python est développé depuis 1989 par Guido van Rossum et par de nombreux contributeurs bénévoles. Il est récupérable gratuitement sur le site https://www.python.org.

Le nom du langage provient de l’émission de la BBC « Monty Python’s Flying Circus »(1) et n’a rien à voir avec les reptiles.

I-1. Pourquoi programmer en Python ?

Aucun langage de programmation n'est parfait. Il n'existe même pas un langage meilleur que d'autres ; il n'y a que des langages en adéquation ou peu conseillés pour des buts particuliers. (Herbert Mayer).

Python n’est pas le meilleur langage pour quoi que ce soit. Pour travailler sur du texte, Perl est meilleur. Pour de l’intelligence artificielle, Lisp est meilleur. Pour de l’embarqué, C est meilleur. Pour de l’asynchrone, JavaScript est meilleur.

Non. Python n’est pas le meilleur, mais seulement très bon. Toutefois, il est très bon pour tout. Python est excellent pour analyser du texte, pour faire un site web (même asynchrone), de l’administration système, des interfaces graphiques, du calcul scientifique, de la 3D, des robots d’indexation, etc. Pas le meilleur, mais très bon.

Et ceci est totalement suffisant. Cela veut dire que pour commencer un projet, n’importe quel projet, on peut partir tranquille avec Python. On ne sera pas bloqué plus tard par tel ou tel besoin. On pourra s’en sortir agréablement avec Python.

Vous faites un site en JavaScript? Pour le sysadmin, il va falloir un autre langage…

Des scripts de maintenance en Perl? J’espère que vous n’aurez pas besoin d’une GUI…

Un crawler en PHP ? Pour l’analyse des données récupérées, vous allez vous amuser…

De l’extraction de données en Ruby ? Pourvu qu’il ne faille pas traiter plusieurs To…

Ce n’est pas que vous ne pourrez pas ; ils sont tous « Turing complet » après tout. Mais vous allez vraiment galérer.

Aucun langage n’est parfait, et Python n’est pas une exception. Mais dans 99% des cas, vous pouvez avoir une solution propre et efficace en Python à la problématique que vous ne savez même pas encore que vous aurez. Et le jour où vous atteindrez la limite, alors oui, vous pourrez utiliser une autre technologie pour la contourner. Mais juste pour cette partie. La plupart du temps, ce sera une partie très réduite. Et en plus, Python pourra probablement s’interfacer nativement avec le code de l’autre langage.

Il y a des tas de raisons de ne pas choisir Python bien entendu, mais probablement la meilleure raison de le choisir, c’est qu’il y a peu de chance de se planter.

I-2. Caractéristiques principales

Détaillons un peu les principales caractéristiques de Python, plus précisément, du langage et de ses différentes implantations actuelles :

  • Python est portable, non seulement sur les différentes variantes d'Unix, mais aussi sur les OS propriétaires (MacOS, BeOS, NeXTStep, MS-DOS) et les différentes variantes de Windows ;
  • Python est gratuit, mais on peut l'utiliser sans restriction dans des projets commerciaux ;
  • Python convient aussi bien à des scripts d'une dizaine de lignes qu'à des projets complexes de plusieurs dizaines de milliers de lignes ;
  • la syntaxe de Python est très simple et, combinée à des types de données évolués (listes, dictionnaires, objets…), conduit à des programmes à la fois très compacts et très lisibles. À fonctionnalités égales, un programme Python (abondamment commenté et présenté selon les canons standards) est souvent de 3 à 5 fois plus petit qu'un programme C ou C++ ou même Java équivalents, ce qui entraine en général un temps de développement de 5 à 10 fois plus court et une facilité de maintenance largement accrue ;
  • Python gère ses ressources (mémoire, descripteurs de fichiers…) sans intervention du programmeur, par un mécanisme de comptage de références proche d'un garbage collector ;
  • Python est (optionnellement) multithreadé ;
  • Python est orienté objet. Il supporte l'héritage multiple et la surcharge des opérateurs ;
  • Python intègre un système d'exceptions qui permettent de simplifier considérablement la gestion des erreurs ;
  • Python est dynamique (l'interpréteur peut évaluer des chaînes de caractères représentant des expressions ou des instructions Python), orthogonal (un petit nombre de concepts suffit à engendrer des constructions très riches), réflexif (il supporte la métaprogrammation, par exemple la capacité pour un objet de se rajouter ou de s'enlever des attributs ou des méthodes, ou même de changer de classe en cours d'exécution) et introspectif (un grand nombre d'outils de développement, comme le débogueur ou le profiler, sont implantés en Python lui-même) ;
  • Python est dynamiquement typé. Tout objet manipulable par le programmeur possède un type bien défini à l'exécution, qui n'a pas besoin d'être déclaré à l'avance ;
  • Python est extensible : on peut facilement l'interfacer avec des bibliothèques C existantes. On peut aussi s'en servir comme d'un langage d'extension pour des systèmes logiciels complexes ;
  • la bibliothèque standard de Python et les paquetages externes donnent accès à une grande variété de services : chaînes de caractères et expressions régulières, services Unix standards (fichiers, pipes, signaux, sockets, threads…), accès Internet (web, news, ftp, cgi, html…), persistance et bases de données, interfaces graphiques ;
  • Python est un langage qui continue à évoluer, soutenu par une communauté d'utilisateurs enthousiastes et responsables, dont la plupart sont des supporters du logiciel libre. Parallèlement à l'interpréteur principal, écrit en C et maintenu par le créateur du langage, un deuxième interpréteur écrit en Java est en cours de développement.

I-3. Python 2 ou Python 3 ?

En 2007 Python a subi une évolution majeure de Python 2 vers Python 3. Les évolutions de cette version associées à un ménage majeur destiné à clarifier le code ont rendu toute compatibilité ascendante et descendante impossible à assurer, ce qui rend ces deux versions totalement incompatibles l’une avec l’autre (sauf à passer exclusivement par la partie qui est restée commune, ce qui réduit alors nettement les possibilités offertes par ces deux versions).

Il était prévu à l’origine que Python 2 soit abandonné en 2015 (soit huit ans après). Cependant, devant l’énorme masse de bibliothèques et outils écrits en Python 2 devant être portés sous Python 3 ; face à la demande massive des développeurs n’ayant pas la possibilité matérielle de faire ce travail (venant en supplément), et dont certains considéraient encore en 2015 que Python 3 manquait encore de maturité (on a même cru un moment qu'un Python 4 arriverait avant la mort de Python 2) ; la communauté a décidé de continuer à assurer une évolution et un suivi de Python 2 qui se sont terminés définitivement au 1er janvier 2020.

La question du choix entre la version 2 ou 3 de Python ne devrait donc plus se poser. Néanmoins, il est important de savoir qu’il existe toujours de nombreux programmes qui utilisent Python 2. Ce tutoriel est donc majoritairement écrit pour Python 3 mais avec des exemples généralement utilisables dans les deux versions (2 et 3) et les quelques exemples spécifiques v2 ou v3 seront marqués à cet effet.

La dernière version (par rapport à ce document) de Python 2 est la 2.7.18 (version définitive pour Python 2 sortie en avril 2020) et la dernière version de Python 3 est la 3.10.0 (sortie en octobre 2021).


précédentsommairesuivant
Une anthologie de sketches, de parodies d'émissions télévisées et de reportages improbables qui dénoncent les travers de la société britannique.

Copyright © 2022 Svear (svear@free.fr) Permission est accordée de copier, distribuer ou modifier ce document selon les termes de la « Licence de Documentation Libre GNU » (GNU Free Documentation License), version 1.1 ou toute version ultérieure publiée par la Free Software Foundation.