Si vous avez jamais écrit un long shell-script, vous connaissez probablement ce sentiment : vous aimeriez ajouter encore une autre fonctionnalité, mais il est déjà tellement lent, et tellement gros, et si compliqué; ou bien la fonctionnalité requiert un appel système ou une autre fonction qui est accessible seulement en C ... Habituellement, le problème à résoudre n'est pas suffisamment grave pour justifier une réécriture du script en C; peut-être que le problème requiert des chaînes de caractères de longueur variable ou d'autres types de données (comme des listes triées de noms de fichiers) qui sont faciles à faire en shell mais nécessitent beaucoup d'effort d'implémentation en C, ou peut-être n'êtes-vous pas suffisamment familier avec le C.
Une autre situation: peut-être devez-vous travailler avec plusieurs bibliothèques C, et le cycle habituel en C écrire, compiler, tester, re-compiler est trop lent. Vous avez besoin de développer du logiciel plus rapidement. Ou alors, peut-être avez-vous écrit un programme qui pourrait utiliser un langage d'extension, et vous ne voulez pas définir un langage, écrire et mettre au point un interpréteur pour lui, puis le lier à votre application.
Dans toutes ces situations, Python pourrait être le langage qu'il vous faut. Python est simple d'emploi, mais c'est un vrai langage de programmation, qui offre bien plus de structure et de de possibilités que le shell pour des programmes volumineux. D'autre part, il offre également beaucoup plus de vérification d'erreurs que le C, et, étant un langage de très haut niveau, il contient des types de données de haut niveau intégrés, comme des tableaux redimensionnables et des dictionnaires, qui vous demanderaient des jours à implémenter efficacement en C. Grâce à ses types de données plus généraux, Python est applicable à un domaine de problèmes beaucoup plus large que Awk ou même Perl, et de nombreuses choses sont au moins aussi faciles en Python que dans ces langages.
Python vous permet de séparer vos programmes en modules qui peuvent être réutilisés dans d'autres programmes en Python. Il est fourni avec une vaste collection de modules standard que vous pouvez utiliser comme base pour vos programmes -- ou comme exemples pour s'initier à la programmation en Python. Il y a aussi des modules intégrés qui fournissent des fonctionnalités comme les entrées/sorties vers les fichiers, les appels systèmes, les sockets, et même des interfaces avec les toolkits d'IHM comme Tk.
Python est un langage interprété, ce qui peut vous faire gagner un temps considérable pendant la réalisation de programmes car aucune compilation ou édition de liens n'est nécessaire. L'interpréteur peut être utilisé de façon interactive, ce qui facilite l'expérimentation avec les possibilités du langage, l'écriture de programmes jetables, ou le test de fonctions pendant le développement ascendant de vos logiciels. C'est aussi une calculatrice de bureau assez pratique.
Python permet d'écrire des programmes très compacts et lisibles. Les programmes écrits en Python sont typiquement beaucoup plus courts que leurs équivalents en C, pour plusieurs raisons :
Python est extensible: si vous savez programmer en C, il est facile d'ajouter une nouvelle fonction intégrée ou un module dans l'interpréteur, soit pour réaliser les opérations critiques à vitesse maximum, soit pour linker les programmes en Python à des bibliothèques qui ne sont disponibles que sous forme binaire (comme une bibliothèque graphique propriétaire). Une fois que vous serez accro, vous pourrez linker l'interpréteur Python dans votre application écrite en C et l'utiliser comme langage d'extension ou de commande pour cette application.
Au passage, le langage est nommé d'après l'émission de la BBC ``Monty Python's Flying Circus'' et n'a rien à voir avec de vilains reptiles. Faire référence à des dialogues des Monty Python dans la documentation n'est pas seulement autorisé, c'est encouragé !
Maintenant que vous êtes tout excité par Python, vous voudrez l'examiner plus en détail. Puisque la meilleure façon d'apprendre un langage est de l'utiliser, vous êtes invité à le faire dès maintenant.
Dans le chapitre suivant, les éléments nécessaires à l'utilisation de l'interpréteur sont expliqués. Ce sont des informations plutôt rébarbatives, mais essentielles pour pouvoir tester les exemples donnés plus loin.
Le reste de ce tutoriel introduit les différentes caractéristiques du langage et du système Python à travers des exemples, en commençant par les expressions, instructions et types de données simples, puis les fonctions et modules, et enfin en survolant des concepts avancés comme les exceptions et les classes définies par l'utilisateur.