Avant d’entrer dans le dur du sujet, j’aimerais déjà que vous fassiez connaissance et je vais donc vous parler un peu de Python.
Vous décrire ses caractéristiques et son histoire, vous montrer de quoi il est capable.
Qui es-tu, Python ?
Comme je le disais en introduction, Python est ce que l’on appelle un langage de programmation.
L’ordinateur ne parlant pas notre langue, il est nécessaire d’adopter la sienne pour parler avec lui.
Mais celle-ci est très rudimentaire, c’est le langage machine compris par le processeur.
Avec le temps, d’autres langages sont apparus autour pour pouvoir communiquer avec l’ordinateur plus simplement que par des instructions processeurs, les langages de programmation.
Je ne pourrais pas vous en faire de liste exhaustive tellement ils sont nombreux, même Wikipédia a du mal à le faire.
Python est un langage dit de haut-niveau, c’est-à-dire qu’il s’éloigne du langage machine en ajoutant des concepts et des outils le rendant plus facile à lire et à écrire, plus proche du langage humain (de l’anglais en l’occurrence).
Python est aussi un langage portable : en dehors de certains cas exceptionnels, un programme Python peut être exécuté de la même manière sur un ordinateur Windows, Mac OS ou GNU/Linux, ainsi que sur des OS mobiles comme Android ou iOS.
Voici un exemple de code écrit en Python :
Comme vous pouvez le remarquer dans cet exemple, plusieurs lignes commencent par des espaces.
C’est ce qui permet en Python de séparer les différentes portions de code tout en l’aérant, on appelle cela l'indentation, mais on y reviendra.
Python est parfois qualifié de « piles incluses », par rapport au fait qu’il est fourni de base avec beaucoup de fonctionnalités (création de fenêtres, gestion native de différents formats de fichiers, etc.).
Mais en plus de ça il dispose d’une large communauté de développeurs et développeuses, contribuant à élargir l’écosystème Python en développant un grand nombre de nouveaux outils pour répondre à des tâches particulières, que vous pourrez réutiliser à votre tour dans vos logiciels.
Cette forte communauté fournit aussi à Python une documentation très complète, qui est de plus traduite en français.
De même, vous trouverez facilement quelqu’un dans la communauté Python pour vous aider dans votre développement, en vous orientant vers des forums de discussion tels que celui de Zeste de Savoir.
On dit aussi de Python qu’il est un langage orienté objet.
Cela signifie que les valeurs que l’on y manipule sont des objets : ils ont des propriétés et des actions qui leur sont propres, ils interagissent les uns avec les autres.
C’est une technologie libre d’utilisation et gratuite. Vous pouvez utiliser Python dans vos programmes comme vous le voulez, distribuer ou vendre ces programmes. Cela signifie aussi que vous pouvez vous-même contribuer au code de Python.
Python se démarque par sa lisibilité, mais cela représente un coût en performances car il faut dans tous les cas que le code soit converti en langage machine.
Cela ne devrait pour autant pas trop vous limiter dans ce que vous pourrez faire avec lui, comme je le montre dans la section qui suit.
De plus c’est un langage extensible, il vous sera donc toujours possible de réaliser du code dans un autre langage dont vous tireriez d’autres avantages puis de le brancher à du code Python.
Réalisations concrètes
La première question que vous pourriez vous poser à propos de Python serait : « Qu’est-ce qu’il est possible de faire avec ? ». À laquelle je pourrais répondre « à peu près tout » mais ce ne serait pas très précis.
Python est utilisé dans de nombreux domaines, à commencer par les sites web.
Le cœur d’Instagram par exemple est entièrement écrit en Python1, de même qu’une bonne partie de Spotify2.
Youtube a démarré avec Python et l’utilise encore aujourd’hui pour de nombreuses tâches, il représente aussi une part importante chez Google3.
Zeste de Savoir lui-même tourne grâce à Python : avec Django plus précisément, un outil Python très répandu pour écrire des sites Internet.
Python est aussi très représenté dans le monde scientifique, avec des applications dans l’intelligence artificielle et le machine learning. Il a par exemple été impliqué dans la photographie du trou noir M87 en 20194 ou le vol de l’hélicoptère Ingenuity sur Mars en 20215.
Le langage est aussi beaucoup utilisé dans le développement lui-même, pour la réalisation de scripts : des petits programmes rapides pour réaliser des tâches précises.
Enfin, on le retrouve aussi dans différents logiciels, que ce soit dans le cœur du programme ou dans des modules annexes.
Le logiciel de synchronisation de fichiers Dropbox est par exemple écrit en Python.
Le langage occupe aussi une place importante dans les jeux Civilization IV et Eve online3.
Il intervient encore dans le moteur d’animation du logiciel de modélisation Blender, et sous forme de modules complémentaires dans le logiciel de dessin Inkscape.
- https://instagram-engineering.com/static-analysis-at-scale-an-instagram-story-8f498ab71a0c↩
- https://engineering.atspotify.com/2013/03/20/how-we-use-python-at-spotify/↩
- https://www.python.org/about/quotes/↩
- https://numpy.org/case-studies/blackhole-image/↩
- https://github.com/readme/nasa-ingenuity-helicopter↩
Histoire
Place maintenant à un petit historique du langage Python, pour mieux le situer et le comprendre.
Python est né en 1991 aux Pays-Bas dans sa version 0.9.0, conçu par Guido van Rossum, développeur dans un centre de recherche néerlandais (CWI) qui commença à développer le projet à la fin des années 1980. Il s’inspira principalement du langage de programmation ABC qui était développé au sein de ce centre mais aussi du langage C et de Modula-3.
Python tire son nom de la troupe comique des Monty Python, dont était fan Guido.
On trouve d’ailleurs de nombreuses références à cette troupe dans la documentation du langage, avec des exemples usant des noms spam
et eggs
.
La version 1.0 de Python arriva en 1994 et ressemblait déjà beaucoup au Python d’aujourd’hui que je vais vous enseigner dans ce cours.
Suivront les versions majeures 2.0 en 2000 et 3.0 en 2008, avec bien sûr de nombreuses versions mineures intermédiaires.
Elles ajouteront à Python de nouvelles influences, telles que les langages de programmation Haskell ou SETL.
La version 3 fit grand bruit puisqu’elle choisit de casser la rétrocompatibilité pour corriger des erreurs de conception des versions précédentes, il fallut une dizaine d’années pour achever la transition de Python 2 vers Python 3.
En 2001 est créée la Python Software Foundation (ou PSF) dans le but de promouvoir et de protéger le langage, supervisant son développement et récoltant les fonds pour son financement.
La fondation œuvre aussi pour organiser des conférences tout autour du monde à propos de Python, les PyCon.
On trouve par exemple la PyConFr organisée chaque année par l'AFPy, relai francophone de la PSF.
À la tête du développement du projet depuis sa création en tant que BDFL (ou « Dictateur bienveillant à vie »), Guido van Rossum s’en retire en 2018 pour des « vacances permanentes », laissant place à un comité de direction. Il reste depuis très impliqué dans les évolutions du langage.
Versions de Python
Ce cours est destiné à un apprentissage de Python 3.
Une version au moins supérieure à 3.8 est recommandée, les précédentes n’étant plus officiellement supportées (ou seulement partiellement) par les développeurs de Python.
Une version non supportée est susceptible de comporter des bugs ou des problèmes de sécurité qui ne seront pas corrigés, il est donc toujours préférable de se maintenir à jour et d’utiliser une version récente de Python.
Cela permet de plus de profiter des dernières nouveautés du langage, car Python est un langage qui évolue sans cesse et dont les mises à jour sont intégrées aux nouvelles versions.
Ainsi, faite votre choix selon les versions proposées par votre système d’exploitation, mais sachez que je ne garantis pas le bon fonctionnement des exemples du tutoriel pour les versions antérieures à la 3.6.
Python suit depuis 2019 un cycle annuel de sortie, chaque nouvelle version paraissant au mois d’octobre. Le calendrier de support des versions de Python est disponible sur la page de téléchargements du site officiel.
Même si la question du choix de version est aujourd’hui simple, elle s’est longtemps posée en raison de la coexistence entre Python 2 et Python 3.
La version 2.7 a finalement arrêté d’être supportée au 1er janvier 2020.
Cependant, il est à noter qu’il se peut que vous rencontriez sur le net des exemples de code utilisant Python 2 et qui ne seraient alors pas compatibles avec votre version.