Avant-propos
Introduction
Cela fait maintenant plus de 15 ans que, par conviction, je ne travaille qu’avec des logiciels libres ; assez rapidement, j’ai découvert Python et j’en suis devenu passionné. Depuis 10 ans, je travaille uniquement sur des projets Python et je cherche toujours à découvrir, à me perfectionner et à transmettre.
Que vous soyez un pythoniste en devenir ou confirmé, que vous connaissiez déjà d’autres langages ou pas, que vous ayez besoin de maîtriser un domaine fonctionnel précis ou que vous ayez envie de toucher à tout, cet ouvrage est pour vous. Il va vous permettre d’appréhender le langage, mais aussi de vous guider dans de nombreux axes fonctionnels afin de les maîtriser.
Le langage n’est qu’un outil, ce qui compte, c’est ce que l’on peut faire avec. Et nous sommes gâtés, car notre outil, le langage Python, est particulièrement affûté et il va nous permettre de faire énormément de choses.
Contenu de l’ouvrage
Le contenu de ce livre porte sur Python 3. Cependant, l’essentiel de ce que vous verrez est directement utilisable en Python 2, un langage maintenant déprécié, mais qui existe encore. Lorsque nous présenterons une fonctionnalité du langage et que des différences notables avec Python 2 existent, nous les mettrons en avant dans un petit encart. De plus, une annexe est spécialement écrite pour vous aider à évoluer de Python 2 vers Python 3.
Cet ouvrage est écrit en plusieurs parties.
La première partie a pour but de présenter quelques clés théoriques pour comprendre ce qu’est un langage de programmation et comment on peut différencier les langages existants. On démontrera que Python, que ce soit en tant que premier langage ou en tant que langage professionnel, est un choix de raison comme d’avenir, qu’il est fiable, utilisé de manière industrielle et qu’il couvre un domaine fonctionnel très important.
La deuxième partie est un court tutoriel à l’usage de ceux qui apprennent leur premier langage de programmation en général ou qui débutent en Python en particulier. On y présente tous les éléments indispensables, lesquels seront détaillés plus minutieusement dans la troisième partie.
La troisième partie est le cœur de l’ouvrage ; elle présente le langage en lui-même, de manière très détaillée :
-
grammaire,
-
types,
-
structures de données,
-
modèle objet,
-
programmation fonctionnelle et autres paradigmes,
-
algorithmique.
Elle s’adresse...
Progressivité de l’ouvrage
Chaque partie et chaque chapitre aborde un domaine particulier, en présente les notions basiques jusqu’aux notions les plus avancées. En fonction de son niveau, le lecteur pourra adapter sa lecture.
Après une première partie théorique et une seconde sous la forme d’un tutoriel, la troisième détaille de manière progressive tous les aspects essentiels du langage. Toutes les parties suivantes présentent la mise en œuvre de technologies tierces au travers de Python. Chaque thème est présenté de manière théorique dans un premier temps, puis son utilisation avec Python. Ces concepts sont présentés au travers d’exemples simples, d’utilisation courante, parfois originale.
Ayant connaissance des documentations déjà existantes, parfois abondantes sur Internet, certains chapitres sont conçus comme des compléments à ces dernières et les référencent. On y introduit des concepts basiques qui manquent dans certaines documentations difficiles d’accès pour un novice ou des concepts avancés dans d’autres documentations plus simples d’accès.
On essaie toujours de partir de la base et de proposer des exemples que vous puissiez reproduire et modifier pour visualiser ce que vous manipulez et vous emparer du sujet.
Des mises en situations concrètes vous sont donc proposées pour vous accompagner dans la découverte de ces modules.
C’est également le même esprit qui dirige l’écriture de la dernière partie : vous accompagner pour débuter un projet dans un domaine...
À destination des enseignants et élèves
Plusieurs gouvernements dont celui des États-Unis d’Amérique et de la France préconisent Python comme langage à utiliser pour l’apprentissage de l’algorithmique dans le cursus scolaire. Notons que ce langage est libre et gratuit.
La grande majorité des universités américaines utilisent Python pour l’apprentissage d’un premier langage de programmation, mais également comme langage pour présenter des domaines fonctionnels. En France, Python est enseigné au collège et au lycée, en particulier en mathématiques ou certains exercices ont des corrigés en langage de calculatrice Texas Instrument et Casio mais également en Python. Pour les études supérieures, sa présence se généralise également.
Il est enseigné dans les classes préparatoires ainsi que dans de nombreuses facultés et écoles d’ingénieurs.
De très nombreux cours en ligne ouverts et massifs (MOOC) sur l’algorithmique sont proposés par des universités américaines ou d’autres acteurs et la plupart sont en Python. En France, on peut citer en particulier la plateforme FUN avec plusieurs cours proposés, entre autres, par l’INRIA, l’université Côte d’Azur ou l’université libre de Bruxelles.
On notera que l’INRIA propose également un cours sur le thème "Bio informatique : algo-rithmes et génomes", Python étant très utilisé dans le domaine scientifique.
On peut citer également la placeforme http://mooc-francophone.com...
À destination des chercheurs ou doctorants
Les chercheurs ou doctorants, sauf ceux dont le domaine de compétence est l’informatique, sont spécialistes de leur domaine, mais pas forcément des outils informatiques et des langages de programmation. Ce sont deux métiers distincts.
En ce sens, le principal avantage de Python est sa simplicité de mise en œuvre ; il est en effet relativement proche d’un langage naturel.
Le fait que les chercheurs ou doctorants aient de bonnes connaissances en mathématiques et en algorithmique classique permet de leur assurer une utilisation de Python aisée à mettre en œuvre. De nombreux exemples montrent que ce langage est particulièrement adapté au développement de logiciels spécifiquement dédiés à la recherche ; il en sera question dans l’ouvrage.
L’avantage principal de Python est donc que le chercheur ou le doctorant puisse passer plus de temps sur les problématiques liées à son domaine de recherche qu’à celles relatives à l’écriture de son code, ce dernier n’étant pas la finalité, mais un moyen.
Nombre d’entre eux témoignent qu’en plus d’être facile, Python propose également des performances équivalentes, voire meilleures, en particulier parce que l’on peut aller plus loin dans la complexité avec moins d’efforts.
De plus, il est à noter que Python offre d’excellentes bibliothèques scientifiques, de très bon niveau et très complètes. Elles sont, tout comme le langage, gratuites et libres, ce qui est un avantage...
À destination de ceux qui viennent d’un autre langage
Quels que soient les langages pratiqués auparavant, celui qui veut apprendre avec Python trouvera toujours des caractéristiques ou des particularités qui lui seront familières et qui lui permettront de démarrer assez rapidement, sans avoir à tout réapprendre.
Pour cela, il lui suffira de développer en utilisant Python de la manière la plus proche de celle qu’il utilisait avec son ancien langage, à la syntaxe près. Dans un second temps, une fois accoutumé à la syntaxe et désireux de franchir une étape supplémentaire, il pourra apprendre petit à petit à rendre son code plus « pythonique », ce qui permet tout à la fois d’être rapidement efficace et d’avoir une courbe d’apprentissage régulière.
Pour toutes les différences et nouveautés, le nouveau pythoniste trouve dans ce livre de quoi étancher sa soif de découverte et peut voir en particulier dans la seconde partie, consacrée au cœur du langage, les subtilités de Python.
Attention cependant, de nombreuses personnes ayant plongé au cœur de Python n’ont jamais pu revenir aux langages qu’ils utilisaient avant !