Python : présentation d'ensemble du langage

Publié dans sa première version en 1991, Python est un langage de haut niveau élégant, portable et extensible qui vous permettra de créer du code lisible, selon l'un des paradigmes de programmation que vous maîtrisez.

Langage de programmation multi-paradigme (dont objet) interprété

L'une des principales caractéristiques de Python est qu'il est orienté objet (il permet donc la POO : programmation orientée objet), mais pas seulement. En effet, la programmation objet n'est pas strictement obligatoire en Python. Si vous avez besoin de coder un petit script dont le but est de réaliser une maintenance système rapide, pas besoin d'envisager la création de classes et de méthodes, voire même de fonctions : quelques lignes de code suffiront !

Python est un langage interprété : à l'image du PHP, un programme Python ne nécessite pas d'étape de compilation en langage machine pour fonctionner. Le code est interprété à l'exécution. Python présente néanmoins une caractéristique intéressante : comme en Java, le code Python est compilé en bytecode (format intermédiaire) avant lancement, ce qui optimise ses performances.

Python est doté d'un typage dynamique fort : cela signifie que le typage, bien que non vérifié lors de la « compilation », Python effectue des vérifications de cohérence sur les types manipulés, et permet de transformer explicitement une variable d'un type à l'autre.

Python : un langage lisible et concis

Plaisir des yeux : le code Python est beau.

Particularité importante : Python n'utilise pas d'accolades ou d'autres délimiteurs (begin/end…) pour repérer les blocs d'un programme, mais l'indentation.

Un exemple vaut mieux que mille mots : en fonction d'une liste de valeurs, nous souhaitons savoir celles qui sont des nombres pairs et celles qui ne le sont pas.

En PHP…

<?php
function valeurs_paires($liste_valeurs) { 
    $classement = array(); 
    for($i=0; $i<count($liste_valeurs); $i++) { 
        if($liste_valeurs[$i] % 2 == 0) { 
            array_push($classement, True); 
        } else { 
            array_push($classement, False); 
        } 
    } 
    return $classement; 
} 

echo var_dump(valeurs_paires([51, 8, 85, 9])); 
?>
array(4) {
  [0]=>
  bool(false)
  [1]=>
  bool(true)
  [2]=>
  bool(false)
  [3]=>
  bool(false)
}

En Python…

def valeurs_paires(liste_valeurs):
    return [(False if v % 2 else True) for v in liste_valeurs]

print valeurs_paires([51, 8, 85, 9])
[False, True, False, False]

Une très grande variété d'applications

Python a cette force que de réussir à fédérer des profils d'informaticiens assez différents.

Parlez par exemple à un administrateur système, il y a fort à parier qu'il connaisse Python et le pratique régulièrement. Parlez à un développeur généraliste qui utilise Sublime Text comme éditeur tout terrain : Python lui est familier en tant que langage d'automatisation, de script et de macros au sein de cet éditeur. Parlez à un développeur d'application web : il ne sera pas sans connaître, au moins de nom et de réputation, des frameworks de développement web comme Django, Flask, Pyramid (Pylons), TurboGears

Bref, on utilise Python partout, dans une grande variété de contextes et d'application. En découle une communauté très large, une grande diversité de librairies disponibles et une excellente maturité du langage.

Testez vos connaissances

Ce questionnaire simple vous permettra d'évaluer votre compréhension de ce qu'est Python en tant que langage, et votre connaissance générale de ses applications.

Pourquoi Python plait-il aux administrateurs système ?
  • Parce qu'il permet de créer des scripts système exécutables en faisant simplement apparaître #!/usr/bin/env python en tête de fichier.
  • Non, Python ne plait pas aux ingénieurs système !
  • Parce qu'il existe beaucoup de librairies utiles pour l'administration système dans bibliothèque standard de Python.
Python est un langage orienté objet : peut-on écrire un programme sans classe ?
  • Oui
  • Non, puisque c'est un langage objet !

Attention, Python est multi paradigme, et le paradigme objet n'est qu'une des cordes à son arc. On peut très bien faire du Python sans jamais écrire une seule classe !

Comment les blocs d'instructions sont-ils repérés en Python ?
  • Par l'indentation du code.
  • Par les accolades, comme en C, PHP, Java…
  • Par la structure BEGIN…END
Est-ce qu'on utilise les accolades en Python ?
  • Non, on n'en a pas besoin car les blocs sont repérés grâce à l'indentation du code.
  • Non, c'est un caractère interdit
  • Oui, pour créer des tableaux associatifs qu'on appelle dictionnaires.

Voici un exemple de création de dictionnaire : d = {'nom': 'Dupond', 'prenom': 'Jean'}.