Informatique

Le langage Python et ses applications

Conçu à Noël 1989 par Guido van Rossum pour être lisible, Python est devenu le langage le plus utilisé au monde : enseignement, science des données, intelligence artificielle, automatisation, sites web. Cinq planches pour comprendre ses idées, ses pièges et ses usages, jusqu'à un petit Python qui tourne dans cette page et dont chaque exemple a été vérifié contre le vrai Python 3.13.

Un langage pensé pour être lu

Pendant les vacances de Noël 1989, au centre de recherche CWI d'Amsterdam, Guido van Rossum commence un langage de script inspiré d'ABC, un langage d'enseignement auquel il avait participé. Il le baptise Python en hommage à la troupe comique britannique des Monty Python. La première version est publiée en février 1991. Son principe directeur : un programme est lu bien plus souvent qu'il n'est écrit, il doit donc être clair. En 1999, Tim Peters résume cette philosophie en dix-neuf aphorismes, le « Zen de Python », que l'on affiche en tapant import this. En octobre 2026, Python est en tête de l'indice TIOBE de popularité des langages, devant C, C++, Java et C#.

Quelques lignes du Zen de Python (Tim Peters, 1999), traduites.
Planche 1

L'indentation fait partie de la syntaxe

En C, en Java ou en PHP, des accolades { } délimitent les blocs, et le décalage des lignes n'est qu'une politesse envers le lecteur. En Python, c'est le décalage lui-même qui définit les blocs : il n'y a pas d'accolades, et un programme mal indenté est un programme faux. Pour cela, l'analyseur de Python tient une pile des indentations : quand une ligne est plus décalée que la précédente, il produit un jeton INDENT (« un bloc s'ouvre ») ; quand elle revient en arrière, un jeton DEDENT par niveau quitté.

Chaque ligne avec sa marge (en bleu). À droite, la pile des indentations ; les jetons INDENT (vert) et DEDENT (rouge) apparaissent quand la marge change.

Le même programme avec des accolades, à la manière de C


      

Exécution

Jetons produits par cette page
—
Contrôle : jetons du module tokenize du vrai Python
—
Profondeur maximale de la pile
—
Ce qu'il faut retenir. Les jetons INDENT et DEDENT jouent exactement le rôle des accolades ouvrantes et fermantes : il y en a toujours autant de chaque sorte, et l'analyseur de cette page en produit le même nombre que le module tokenize du vrai Python. Le décalage visuel et la structure logique ne peuvent donc jamais se contredire, alors qu'en C on peut aligner une ligne sous un if sans qu'elle en fasse partie, une source d'erreurs célèbres. La convention, fixée par le guide de style PEP 8 (2001), est de décaler chaque niveau de quatre espaces.
Planche 2

Noms et objets : ce que fait vraiment le signe =

En Python, une variable n'est pas une boîte qui contient une valeur : c'est un nom collé sur un objet. L'instruction b = a ne copie rien ; elle colle une deuxième étiquette sur le même objet. Certains objets sont modifiables (listes, dictionnaires), d'autres ne le sont pas (nombres, chaînes, tuples) : « modifier » un entier fabrique en réalité un nouvel objet. Suivez les trois scénarios pas à pas.

    Sortie

    À gauche les noms, à droite les objets en mémoire. Une flèche relie chaque nom (ou chaque case de liste) à l'objet qu'il désigne. Un objet qui n'est plus désigné par rien est grisé : le ramasse-miettes le libérera.
    Objets vivants / noms
    —
    Contrôle : sortie du vrai Python 3.13 pour ce scénario
    —
    Ce qu'il faut retenir. a is b demande « est-ce le même objet ? », a == b « ont-ils la même valeur ? ». Après b = a, modifier la liste par b se voit aussi par a ; pour une vraie copie il faut a[:] ou list(a). Avec un entier, y += 1 ne touche pas l'objet 5 : il fabrique l'objet 6 et y recolle l'étiquette y. Le scénario 3 est un piège célèbre : [ligne] * 3 répète trois fois la même ligne, et modifier une case les modifie toutes ; la compréhension de liste, elle, crée trois lignes distinctes.
    Planche 3

    Python et les données : décrire et relier

    Python est devenu le langage de l'analyse des données grâce à sa bibliothèque standard (module statistics) et surtout à NumPy (2006) et pandas (2008). Voici les tailles et pointures de 60 élèves fictifs, tirées au hasard par Python. On calcule les indicateurs habituels, puis la droite de régression qui prédit la pointure à partir de la taille. Ajoutez une valeur aberrante pour voir quels indicateurs résistent.

    
      
    8
    Histogramme des tailles. Trait rouge : moyenne ; trait vert : médiane ; bande grise : du premier au troisième quartile.
    Pointure en fonction de la taille, avec la droite des moindres carrés. Le point orange est la valeur aberrante.
    Ce qu'il faut retenir. Un seul élève de 250 cm fait bondir la moyenne et l'écart-type, et fait pivoter la droite de régression (sa pente passe de 0,287 à 0,178), alors que la médiane et les quartiles bougent à peine : on dit qu'ils sont robustes. Tous les nombres du tableau sont calculés dans votre navigateur et comparés à ceux du vrai module statistics de Python 3.13, exécuté au moment de la fabrication de cette page. Avec pandas, les mêmes calculs portent sur des millions de lignes en une seule instruction, ce qui a fait de Python l'outil de base des statisticiens, des biologistes et des économistes.
    Planche 4

    Python et l'intelligence artificielle : apprendre à classer

    Presque toute l'intelligence artificielle actuelle s'écrit en Python, avec scikit-learn (2007), TensorFlow (2015) ou PyTorch (2016). Le principe de l'apprentissage se voit déjà sur le plus petit des modèles, la régression logistique : une frontière droite sépare deux familles de points. Le modèle part d'une frontière quelconque, mesure son erreur (la perte), puis déplace ses trois paramètres un petit peu dans le sens qui la diminue : c'est la descente de gradient, répétée à chaque « époque ».

    
      
    15
    Les 80 points (bleu : famille 0, rouge : famille 1). Le fond montre la probabilité calculée par le modèle ; la ligne noire est la frontière à 50 %. Les points cerclés sont mal classés.
    La perte moyenne au fil des époques : elle diminue à mesure que le modèle apprend.
    Époque
    —
    Paramètres w₁, w₂, b
    —
    Perte moyenne
    —
    Points bien classés
    —
    Contrôle : même entraînement exécuté par le vrai Python (200 époques)
    —
    Ce qu'il faut retenir. Le modèle n'a reçu aucune règle : il a seulement ajusté trois nombres en regardant ses erreurs, jusqu'à classer correctement 95 % des points. Les grands réseaux de neurones apprennent exactement de la même façon, mais avec des milliards de paramètres au lieu de trois ; Python se contente alors de décrire le calcul, que des bibliothèques écrites en C et en CUDA exécutent sur des cartes graphiques. Les nombres obtenus ici par votre navigateur sont identiques, au dernier chiffre près, à ceux du programme Python affiché, exécuté par le vrai Python.
    Planche 5 · signature

    Un petit Python qui tourne dans votre navigateur

    Cette page contient un interpréteur Python écrit en JavaScript : il découpe votre programme en jetons (avec INDENT et DEDENT, planche 1), construit l'arbre syntaxique et l'exécute en suivant les règles de Python 3 : entiers de taille illimitée, flottants affichés comme Python, chaînes, listes, tuples, dictionnaires et ensembles, compréhensions, fonctions et fonctions anonymes, exceptions, f-strings et module math. Chaque exemple a été exécuté par le vrai Python 3.13 au moment de la fabrication de la page ; sa sortie est comparée en direct, caractère par caractère.

    Sortie

    Jetons / étapes d'exécution
    —
    Lignes affichées
    —
    Contrôle : comparaison avec la sortie du vrai Python 3.13
    —
    Ce qu'il faut retenir. L'exemple « Les entiers sans limite » montre une particularité précieuse de Python : ses entiers grandissent autant qu'il faut, si bien que 52! ou le 300ᵉ nombre de Fibonacci s'affichent exactement, chiffre par chiffre, là où la plupart des langages débordent à 2⁶⁴. L'exemple « Les pièges classiques » rassemble ce qui surprend les débutants : round(2.5) vaut 2 (on arrondit au pair pour ne pas biaiser les sommes), -7 // 2 vaut −4, et une liste par défaut est partagée d'un appel à l'autre. Le vrai Python, CPython, est lui-même écrit en C : il compile votre programme en instructions pour une machine virtuelle, puis les exécute ; depuis la version 3.13 (2024), il peut aussi, à titre expérimental, compiler à la volée (JIT) et fonctionner sans le « verrou global » qui l'empêchait d'utiliser plusieurs cœurs à la fois. L'interpréteur de cette page ne connaît ni les classes ni les modules autres que math.

    Ce que l'on fait avec Python

    Enseigner

    Sa syntaxe épurée en fait le premier langage de très nombreux élèves et étudiants ; en France, c'est le langage de la spécialité NSI du lycée, créée en 2019, et des algorithmes du programme de mathématiques.

    Calculer et analyser

    NumPy, SciPy, pandas et Matplotlib forment la boîte à outils des scientifiques ; les carnets Jupyter mêlent code, graphiques et texte pour partager une analyse.

    Apprendre aux machines

    scikit-learn, TensorFlow et PyTorch : l'essentiel de la recherche et de l'industrie de l'intelligence artificielle, y compris l'entraînement des grands modèles de langage, se pilote en Python.

    Automatiser et servir

    Scripts d'administration, traitement de fichiers, sites web avec Django (2005) ou Flask (2010), robots, cartes électroniques avec MicroPython : Python sert de « langage colle » entre les outils.

    Frise des jalons

    Pour aller plus loin

    L'interpréteur de cette page est une imitation pédagogique : il reproduit les règles de calcul et d'affichage de Python 3 sur un large sous-ensemble du langage, et les exemples, les données des planches 3 et 4 et les comptes de jetons de la planche 1 ont été produits ou vérifiés par Python 3.13 au moment de la fabrication de la page.