1. Mise en bouche
*****************

Lorsqu'on travaille beaucoup sur ordinateur, on finit souvent par
vouloir automatiser certaines tâches : par exemple, effectuer une
recherche et un remplacement sur un grand nombre de fichiers de texte
; ou renommer et réorganiser des photos d'une manière un peu
compliquée. Pour vous, ce peut être créer une petite base de données,
une application graphique ou un simple jeu.

Quand on est un développeur professionnel, le besoin peut se faire
sentir de travailler avec des bibliothèques C/C++/Java, mais on trouve
que le cycle habituel écriture/compilation/test/compilation est trop
lourd. Vous écrivez peut-être une suite de tests pour une telle
bibliothèque et vous trouvez que l'écriture du code de test est
pénible. Ou bien vous avez écrit un logiciel qui a besoin d'être
extensible grâce à un langage de script, mais vous ne voulez pas
concevoir ni implémenter un nouveau langage pour votre application.

Python est le langage parfait pour vous.

Vous pouvez écrire un script shell Unix ou des fichiers batch Windows
pour certaines de ces tâches. Les scripts shell sont appropriés pour
déplacer des fichiers et modifier des données textuelles, mais pas
pour une application ayant une interface graphique ni pour des jeux.
Vous pouvez écrire un programme en C/C++/Java, mais cela peut prendre
beaucoup de temps, ne serait-ce que pour avoir une première maquette.
Python est plus facile à utiliser et il vous aidera à terminer plus
rapidement votre travail, que ce soit sous Windows, macOS ou Unix.

Python reste facile à utiliser, mais c'est un vrai langage de
programmation : il offre une bien meilleure structure et prise en
charge des grands programmes que les scripts shell ou les fichiers
batch. Par ailleurs, Python permet de beaucoup mieux vérifier les
erreurs que le langage C et, en tant que *langage de très haut
niveau*, il possède nativement des types de données très évolués tels
que les tableaux de taille variable ou les dictionnaires. Grâce à ses
types de données plus universels, Python est utilisable pour des
domaines beaucoup plus variés que ne peuvent l'être *Awk* ou même
Perl. Pourtant, vous pouvez faire de nombreuses choses au moins aussi
facilement en Python que dans ces langages.

Python vous permet de découper votre programme en modules qui peuvent
être réutilisés dans d'autres programmes Python. Il est fourni avec
une grande variété de modules standards que vous pouvez utiliser comme
base de vos programmes, ou comme exemples pour apprendre à programmer.
Certains de ces modules donnent accès aux entrées/sorties, aux appels
système, aux connecteurs réseaux et même aux outils comme Tk pour
créer des interfaces graphiques.

Python est un langage interprété, ce qui peut vous faire gagner un
temps considérable pendant le développement de vos programmes car
aucune compilation ni édition de liens n'est nécessaire.
L'interpréteur peut être utilisé de manière interactive, pour vous
permettre d'expérimenter les fonctionnalités du langage, d'écrire des
programmes jetables ou de tester des fonctions lors d'un développement
incrémental. C'est aussi une calculatrice de bureau bien pratique.

Python permet d'écrire des programmes compacts et lisibles. Les
programmes écrits en Python sont généralement beaucoup plus courts que
leurs équivalents en C, C++ ou Java. Et ceci pour plusieurs raisons :

* les types de données de haut niveau vous permettent d'exprimer des
  opérations complexes en une seule instruction ;

* les instructions sont regroupées entre elles grâce à l'indentation,
  plutôt que par l'utilisation d'accolades ;

* aucune déclaration de variable ou d'argument n'est nécessaire.

Python est *extensible* : si vous savez écrire un programme en C, une
nouvelle fonction ou module peut être facilement ajouté à
l'interpréteur afin de l'étendre, que ce soit pour effectuer des
opérations critiques à vitesse maximale ou pour lier des programmes en
Python à des bibliothèques disponibles uniquement sous forme binaire
(par exemple des bibliothèques graphiques dédiées à un matériel). Une
fois que vous êtes à l'aise avec ces principes, vous pouvez relier
l'interpréteur Python à une application écrite en C et l'utiliser
comme un langage d'extensions ou de commandes pour cette application.

Au fait, le nom du langage provient de l'émission de la BBC « Monty
Python's Flying Circus » et n'a rien à voir avec les reptiles. Faire
référence aux sketchs des Monty Python dans la documentation n'est pas
seulement permis, c'est encouragé !

Maintenant que vos papilles ont été chatouillées, nous allons pouvoir
rentrer dans le vif du sujet Python. Et comme la meilleure façon
d'apprendre un langage est de l'utiliser, ce tutoriel vous invite à
jouer avec l'interpréteur au fur et à mesure de votre lecture.

Dans le prochain chapitre, nous expliquons l'utilisation de
l'interpréteur. Ce n'est pas la section la plus passionnante, mais
c'est un passage obligé pour que vous puissiez mettre en pratique les
exemples donnés plus loin.

Le reste du tutoriel présente diverses fonctionnalités du langage et
du système Python au travers d'exemples, en commençant par les
expressions simples, les instructions et les types de données, jusqu'à
aborder des concepts avancés comme les exceptions et les classes, en
passant par les fonctions et modules.
