Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Du 22 au 24 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. Python 3
  3. Présentation de Python
Extrait - Python 3 Les fondamentaux du langage (4e édition)
Extraits du livre
Python 3 Les fondamentaux du langage (4e édition)
4 avis
Revenir à la page d'achat du livre

Présentation de Python

Philosophie

1. Python en quelques lignes

a. D’où vient le nom « Python » ?

Un Python est un serpent aisément reconnaissable (http://fr.wikipedia.org/wiki/Python_%28genre%29) qui doit son nom à l’animal monstrueux de Delphe (http://fr.wikipedia.org/wiki/Python_%28mythologie%29). C’est ainsi que cette image forte aisément représentable par l’esprit humain a servi de base pour créer au langage qui se nommait également « Python » un logo stylisé, mais elle n’a rien à voir avec le choix de ce nom pour ce langage de programmation.

Il s’agit en réalité d’un hommage rendu aux célèbres « Monty Python » (http://fr.wikipedia.org/wiki/Monty_Python), une troupe de comiques britanniques qui après avoir connu le succès avec « Monty Python’s flying circus » réalisa un premier film, sélection de leurs précédents sketches « La première folie des Monty Python » et enchaîna avec trois films de référence qui sont « Sacré Graal ! », « La vie de Brian » et « Le sens de la vie ».

Il faut noter que l’affiche française du tout premier film fut réalisée par l’excellent Gotlib, ce qui ne peut qu’être un gage de qualité.

Quant à savoir comment les Monty Python ont choisi leur nom, et en particulier le mot Python, il faut entrer au cœur de la légende, et cela sort du cadre strict de cet ouvrage (mais c’est déjà...

Histoire de Python

1. La genèse

Tous les langages ont un créateur emblématique et ont à l’origine une destination précise et très orientée sur la résolution d’une problématique. Les langages qui s’imposent sont ceux qui ont su se diversifier et permettent de répondre de manière pertinente et efficace à une multiplicité de domaines d’application.

Python entre exactement dans ce cadre. À la fin des années 1980, Guido Van Rossum travaille aux Pays-Bas au CWI (Centrum voor Wiskunde en Informatica) dans l’équipe du système d’exploitation Amoeba. La problématique qu’il rencontre est que les appels système de ce système d’exploitation sont difficilement interfaçables avec le Bourne Shell qui est la référence de l’époque, utilisé comme interface utilisateur.

C’est en 1989 qu’il crée alors, sur son temps libre, la première version du langage Python, nommée ainsi en l’honneur des Monty Python dont il est fan. Python est ainsi inspiré des langages ABC (ce dernier s’inspire de Algol et est conçu pour succéder à BASIC, Pascal et Awk, mais présente des contraintes qui rendent nécessaire la création d’une alternative), Modula-3 qui est une amélioration de Pascal intégrant des concepts intéressants, C qui est déjà une référence et des outils Unix.

Python couvre ainsi un périmètre fonctionnel restreint, mais il répond bien à la problématique pour laquelle il a été initialement...

Gouvernance

1. Développement

a. Branches

Python dispose d’une seule branche active : la 3, dont la dernière version stable, à l’heure où ces lignes sont écrites, est la 3.11.

Depuis le début, la philosophie de Python sur la branche et son fonctionnement est très claire : la compatibilité avant tout. Au sein d’une même branche, un code écrit dans les premières heures de l’existence d’une branche doit pouvoir encore fonctionner dans les toutes dernières heures. Les choses peuvent évoluer, mais toujours de façon à ce que l’existant demeure valide. Ainsi, les développeurs ont l’assurance, en écrivant leur code aujourd’hui, qu’il est fonctionnel jusqu’à la mort de la branche courante.

Mais un langage évolue, certains de ses aspects doivent être remplacés de telle manière que le fait de garder la compatibilité pose un sérieux problème. Certaines anciennes pratiques doivent être bannies.

À ce moment-là, le passage vers une nouvelle branche s’impose. C’est l’occasion de revoir en profondeur tous les aspects du langage pour proposer quelque chose de pertinent, innovant et solide.

C’est exactement ce qu’il s’est passé lors de la migration vers la branche 3, il y a quelques années. Cette dernière a nécessité quelques ajustements importants avec les branches 3.0 et 3.1 qui ont fait que ces deux versions ne sont plus compatibles avec les versions 3.2 et supérieures. La complexité de la migration de Python 2 vers Python 3 a fait que la règle...

Que contient Python ?

1. Une grammaire et une syntaxe

Le cœur d’un langage, c’est sa grammaire. Python en propose une extrêmement originale, offrant des possibilités très étendues. Elle est déclinée dans la documentation officielle (http://docs.python.org/py3k/reference/grammar.html).

En restant très généraliste, Python propose le support de plusieurs paradigmes. Tout est objet, mais tout reste modifiable. Le paradigme impératif reste très largement utilisable et utilisé, le paradigme fonctionnel occupe également une place de choix. Les opérateurs sont surchargeables.

Il existe plusieurs instructions qui sont toutes renseignées dans le même document : http://docs.python.org/py3k/reference/index.html.

Python permet l’écriture des compréhensions de listes, de dictionnaires et de générateurs. Il ne dispose que de trente-trois mots-clés, ce qui est à la fois très peu et très largement suffisant. Chaque mot-clé a une signification claire et précise et il n’en existe pas deux qui se ressemblent même de loin.

Sa grammaire et sa syntaxe permettent tout à la fois une très haute lisibilité et sont très innovantes quant aux possibilités d’algorithmes offertes aux développeurs.

2. Plusieurs implémentations

Python est un langage abstrait, une théorie. Il dispose de plusieurs implémentations distinctes. L’implémentation de référence est CPython.

D’ailleurs, la plupart du temps, par abus de langage, lorsque l’on dit que l’on écrit...

Phases d’exécution d’un programme Python

1. Chargement de la machine virtuelle

Dès lors qu’un programme Python est lancé, la machine virtuelle Python est démarrée. Elle interface le programme Python et le système d’exploitation.

Son démarrage prend forcément un peu de temps ainsi que des ressources, mais ceci reste relativement limité.

2. Compilation

Lorsque l’on démarre un programme Python, ce dernier (représenté par le module principal qui est le fichier exécuté) va être compilé, ainsi que l’ensemble des modules qu’il utilise (modules qu’il importe, et ce, récursivement).

Pour éviter de compiler à nouveau les modules à chaque utilisation du script, leur version compilée est écrite dans un fichier .pyc et à chaque nouvelle exécution du script, il est vérifié que ces modules n’ont pas été modifiés, sans quoi une nouvelle compilation a lieu. Par contre, le module principal lui-même est toujours compilé systématiquement à la volée et n’est pas sauvegardé dans un tel fichier.

Le fait d’avoir ces fichiers .pyc permet une économie de temps au démarrage. Ils contiennent du bytecode qui est une version technique du code exploitable par la machine virtuelle, mais qui reste indépendante de la plateforme.

Python propose des modules qui permettent de gérer leur propre compilation et de personnaliser ce processus. Il existe également deux options -O et -OO que l’on peut passer à Python permettant de générer des fichiers...