Python

& JavaScript

John Paul Mueller,

Chris Minnick et Eva Holland

Python & JavaScript pour les Nuls

Cet ouvrage comporte des extraits de Python pour les Nuls et JavaScript pour les Nuls

Pour les Nuls est une marque déposée de Wiley Publishing, Inc.

For Dummies est une marque déposée de Wiley Publishing, Inc.

Edition française publiée en accord avec Wiley Publishing, Inc.

© Éditions First, un département d’Édi8, 2020

Éditions First, un département d’Édi8

92, avenue de France

75013 Paris – France

Tél. : 01 44 16 09 00

Fax : 01 44 16 09 01

E-mail : firstinfo@efirst.com

Web : www.editionsfirst.fr

ISBN : 978-2-4120-05791-9

ISBN numérique : 9782412060957

Dépôt légal : 2e trimestre 2020

Collection dirigée par Jean-Pierre Cano

Traduction : Daniel Rougé

Mise en page : maged

Cette œuvre est protégée par le droit d’auteur et strictement réservée à l’usage privé du client. Toute reproduction ou diffusion au profit de tiers, à titre gratuit ou onéreux, de tout ou partie de cette œuvre est strictement interdite et constitue une contrefaçon prévue par les articles L 335-2 et suivants du Code de la propriété intellectuelle. L’éditeur se réserve le droit de poursuivre toute atteinte à ses droits de propriété intellectuelle devant les juridictions civiles ou pénales.

Ce livre numérique a été converti initialement au format EPUB par Isako www.isako.com à partir de l'édition papier du même ouvrage.

Introduction

Vite ! Quels sont les langages de programmation qui vous permettent d’écrire rapidement des applications fonctionnelles et utilisables sur pratiquement n’importe quelle plate-forme ou sur vos pages Web ? Vous donnez votre langue au chat ? Oui, ce sont Python et JavaScript.

Python et JavaScript proposent un code lisible et une syntaxe concise qui vous permet d’écrire des applications qui nécessitent moins de code que d’autres langages. De plus, il est utile dans toutes sortes de domaines.

Ce livre, divisé en deux livres distincts se propose donc de vous initier à la programmation avec ces deux langages.

À propos de ce livre

Ce livre aborde tout ce qui concerne l’installation, la mise en œuvre et surtout la mise en action rapide de Python et de JavaScript. Vous voulez apprendre rapidement les bases de ces langages de manière à devenir productif dans votre travail, qui peut être à peu près quelconque, ou encore dans la formation que vous suivez. Contrairement à nombres d’autres livres consacrés à ce sujet, celui-ci commence par le commencement. Vous découvrirez même comment installer efficacement tous les outils dont vous avez besoin sur votre système.

Une l’installation réalisée, vous pourrez commencer à travailler avec. Quand vous aurez étudié les exemples de ce livre, vous devriez être capable d’écrire des programmes simples et d’effectuer certaines tâches avancées, par exemple envoyer des e-mails. Certes, vous ne deviendrez pas un expert, mais vous serez capable d’utiliser ces 2 langages pour des besoins spécifiques dans votre environnement professionnel. Pour rendre tout cela plus digeste, ce livre utilise quelques conventions :

» Le texte que vous êtes supposé taper au clavier est imprimé en caractères gras. D’accord, lorsque vous devez suivre une liste d’étapes, dont le texte est déjà mis en caractères gras, le texte à taper restera tel quel.

» Si vous voyez des caractères en italiques dans une séquence que vous devez saisir, cela signifie que vous devez les remplacer par quelque chose de plus personnel. Exemple : « Tapez Votre nom et appuyez sur Entrée ». Remplacez alors Votre nom par votre propre nom (ou par un autre, d’ailleurs).

» Les adresses Web apparaissent dans une police particulière. C’est juste pour ne pas les confondre avec autre chose.

En fait, c’est à peu près tout, et donc vous pouvez constater qu’il n’y a rien de particulièrement compliqué dans ces conventions.

Quelques suppositions un peu folles

Même si vous avez du mal à le croire, je ne suppose rien de particulier sur vous. Après tout, on ne se connaît pas! Même si les suppositions sont généralement un peu vides de sens, il en faut tout de même quelques-unes pour se mettre bien d’accord dès le début.

Il est important que vous soyez familiarisé avec la plate-forme (Windows ou macOS) que vous utilisez, car vous ne trouverez rien de particulier dans ce livre à ce sujet. Dans le même esprit, nous ne traiterons pas non plus des problèmes potentiellement liés à telle ou telle plate-forme. En bref, vous devez savoir comment installer des applications en général, comment les utiliser, et plus généralement comment utiliser votre plate-forme préférée avant de commencer à travailler avec ce livre.

Nous allons aussi supposer que vous savez un certain nombre de choses sur l’Internet. En fait, vous trouverez dans ce livre de nombreuses références en ligne qui vous aideront à développer vos connaissances. Mais, comme il se doit, ces sources d’information ne vous seront utiles que si vous êtes capable de les trouver. De plus, ces sources sont essentiellement en anglais. Une bonne pratique de la langue de nos amis anglo-saxons est donc un prérequis auquel vous ne pourrez pas échapper.

Icônes utilisées dans ce livre

Cette section décrit les icônes intéressantes (ou pas) que vous allez rencontrer dans ce livre.

Ces trucs et astuces sont utiles pour vous faire gagner du temps ou pour effectuer rapidement certaines tâches. Certaines pointent également vers des ressources que vous devriez essayer pour tirer le maximum de profit du langage.

Je ne veux pas donner l’impression d’être un vieux grincheux, mais vous devriez éviter de faire ce qui est signalé par cette icône. Sinon, il se pourrait bien que votre application n’entraîne que confusion chez vos utilisateurs, qui ne seront plus vos utilisateurs puisqu’ils refuseront de se servir de votre application…

Cette icône signale des informations ou des techniques avancées. Si cela vous ennuie, passez à la suite. Mais vous pouvez peut-être aussi prendre le temps de les lire, pour le cas où cela pourrait vous servir plus tard.

Cette icône est un rappel de ce que vous devriez retenir. Il s’agit généralement d’un processus important, ou encore d’une information que vous devez connaître pour pouvoir écrire des applications Python fonctionnelles et efficaces.

Et maintenant…

Il est temps de débuter votre aventure. Si vous êtes totalement novice, vous devriez partir du Chapitre 1 et progresser à une vitesse vous permettant d’absorber autant de matériaux que possible. Mais sachez prendre votre temps, et revenir en arrière si c’est nécessaire.

Cependant, il est important de comprendre comment chaque exemple fonctionne avant de passer au suivant. Chaque exemple représente une leçon importante, et vous pourriez bien manquer des informations vitales si vous voulez aller trop vite.

Bien entendu, vous pouvez ressaisir tous les exemples manuellement. Mais vous aurez certainement envie de les avoir à portée de main, sans taper une par une toutes les lignes de tous les exemples, avec tout ce que cela comporte de risque d’erreur. C’est pourquoi vous pouvez télécharger les exemples de ce livre depuis l’adresse suivante :

http://www.pourlesnuls.fr/

Dans la page qui va s’afficher, cliquez sur le bouton Rechercher (la loupe) et saisissez le nom du livre, ou du moins le sujet principal (donc python ou JavaScript dans ce cas). Il ne vous reste plus qu’à localiser l’image de couverture de ce livre, puis à cliquer dessus. Dans le page de présentation, cliquez simplement sur le bouton Télécharger. Le fichier contenant le code des exemples est petit. Tout devrait donc aller très vite.

Et maintenant, bonne programmation !

LIVRE 1Python

PARTIE 1Débuter avec Python

DANS CETTE PARTIE…

La programmation, ses tenants et ses aboutissants, et ses rapports avec Python.

Télécharger votre copie de Python et l’installer sur votre système.

Travailler avec l’environnement interactif de Python.

Créer votre première application avec Python.

Comprendre l’importance des commentaires dans votre application.

Chapitre 1 Parler à votre ordinateur

DANS CE CHAPITRE :

» Comprendre pourquoi vous voulez parler à votre ordinateur.

» Comprendre qu’une application est une forme de communication.

» Comprendre ce que font les applications, et pourquoi vous voulez en créer.

» Pourquoi utiliser Python comme langage de programmation ?

Avoir une conversation avec son ordinateur peut encore de nos jours paraître relever de la science-fiction. Après tout, les membres de l’équipage du vaisseau Enterprise dans Star Trek parlaient régulièrement à leurs ordinateurs. Mais, avec l’avènement de logiciels interactifs, comme Siri (Apple), Google Assistant, Alexa (Amazon) ou encore Cortana (Microsoft), finalement rien de tout cela n’est plus inconcevable.

Demander vocalement à un ordinateur ou à un appareil portable comme un smartphone ou une tablette de donner certaines informations est une chose. Mais fournir des instructions à la machine en est une autre. Ce chapitre (comme évidemment tout ce livre) considère que vous voulez donner des instructions à votre ordinateur et en obtenir des résultats. Vous y découvrirez également qu’il est nécessaire de faire appel à un langage spécial pour effectuer ce type de communication, et pourquoi vous devez utiliser le langage Python pour y arriver. Mais l’idée principale à retirer de ce chapitre, c’est que la programmation est simplement une forme de communication, qui vient prendre sa place parmi les autres formes de communication dont vous vous servez déjà avec votre ordinateur.

Comprendre pourquoi vous voulez parler à votre ordinateur

Parler (j’emploie ce verbe au sens large) à une machine peut sembler un peu bizarre au premier abord, mais c’est nécessaire, car l’ordinateur ne peut pas lire dans votre cerveau. Du moins, pas encore. Et même s’il était capable de déchiffrer vos pensées, il ne ferait que continuer à communiquer avec vous. Rien ne peut se produire sans cet échange d’informations entre la machine et vous. Des activités telles que celles-ci :

» lire vos messages électroniques,

» écrire quelque chose à propos de vos vacances,

» trouver le plus beau cadeau du monde…

sont toutes des exemples de communication entre vous et l’ordinateur ; et le fait que, pour atteindre les buts que vous lui assignez, il doive pousser plus loin l’interaction avec d’autres machines, ou d’autres personnes, pour leur transmettre vos requêtes n’y change rien. Il s’agit tout simplement d’une extension de l’idée de base, à savoir que communiquer est une condition nécessaire pour obtenir n’importe quel résultat.

Dans la plupart des cas, tout cela se déroule de manière pratiquement invisible pour vous, à moins que vous n’y réfléchissiez d’un peu plus près. Supposons par exemple que vous dialoguiez avec une autre personne en ligne (disons par l’intermédiaire d’un messenger quelconque). En réalité, vous communiquez avec votre ordinateur (ou votre smartphone), qui lui-même communique avec l’ordinateur (ou le smartphone) de la personne qui est à l’autre bout via un « salon où l’on cause » quelconque, et cet ordinateur lointain communique avec votre correspondant ou votre correspondante. Évidemment, le même principe s’applique dans l’autre sens… La Figure 1.1 illustre ce concept.

FIGURE 1.1 Les communications entre personnes et ordinateurs s’effectuent de manière invisible, transparente.

Remarquez l’espèce de nuage au centre de la Figure 1.1. Il pourrait contenir à peu près n’importe quoi, mais vous savez qu’on peut au moins y trouver d’autres ordinateurs qui exécutent certaines applications. C’est grâce à eux que vous et votre correspondant(e) pouvez dialoguer. De votre point de vue, c’est quelque chose de très facile, voire même d’évident. Toute cette chaîne travaille à votre service en arrière-plan, de façon invisible, et vous avez simplement l’impression de converser comme si vous vous trouviez dans la même pièce (enfin presque).

Oui, une application est une forme de communication

La communication avec les ordinateurs s’établit dès lors que vous vous servez d’applications. Par exemple, vous utilisez une application pour répondre à vos messages, une autre pour acheter quelque chose, et une autre encore pour créer un diaporama. Une application (certains l’appellent maintenant une app) fournit le moyen d’exprimer des idées humaines devant un ordinateur, tout en permettant à celui-ci de les comprendre et en définissant les outils grâce auxquels ce dernier est capable de gérer ces processus de communication. Les données utilisées pour exprimer le contenu d’une présentation sont évidemment différentes de celles qui concernent un cadeau pour votre maman. Par conséquent, les manières dont vous les visualisez, les utilisez et les comprenez sont différentes pour chaque tâche. C’est pourquoi vous devez utiliser des applications diverses de manière à interagir avec toutes ces données pour que l’ordinateur et vous arriviez à vous comprendre.

Il est possible de trouver des applications qui répondent à vos besoins quotidiens. En fait, il en existe vraisemblablement des tas qui sont capables de le faire, sans que vous le sachiez. Les programmeurs ont travaillé dur pour créer des millions et des millions d’applications de tous types depuis de nombreuses années. Mais cela ne répond pas forcément à votre question. La réponse tient dans une réflexion sur vos données et sur la manière dont vous voulez interagir avec elles. Certaines de ces données peuvent être tellement spécifiques qu’aucun programmeur ne s’est penché dessus. À moins que vous n’ayez besoin d’un format de données totalement nouveau. Dans ce cas, le dialogue avec l’ordinateur ne peut pas s’établir, à moins que vous ne définissiez vous-même une application capable de traiter vos données.

Les sections qui suivent décrivent cette notion d’application du point de vue de vos données, avec les traitements dont vous avez besoin. Vous pourriez par exemple vouloir accéder à une bibliothèque d’enregistrements vidéo, mais sans pouvoir y accéder d’une manière qui réponde à vos souhaits. Ces données sont donc uniques, et vos besoins d’accès très spécifiques. Vous allez donc devoir créer une application qui réponde à ces deux problèmes : quelles sont vos données, et comment pouvez-vous y accéder ?

Des procédures pour tous les jours

Une procédure, c’est simplement une série d’étapes à exécuter pour effectuer une certaine tâche. Pour griller du pain, par exemple, vous devez suivre une procédure comme celle-ci :

» Vous sortez le pain et le beurre du réfrigérateur.

» Vous ouvrez le sachet du pain et vous sortez deux tartines.

» Vous ouvrez le couvercle du grille-pain (s’il en a un).

» Vous insérez vos deux tranches de pain dans l’appareil.

» Vous appuyez sur le bouton ad hoc du grille-pain pour lancer la cuisson.

» Vous attendez que le grille-pain vous rende les tartines.

» Vous retirez les tartines du grille-pain.

» Vous placez les tartines sur un plateau.

» Vous beurrez les tartines.

D’accord, il peut y avoir des variations, et chacun prépare son petit-déjeuner à sa manière. Mais il y a un point qui met tout le monde d’accord : vous ne beurrez pas vos tartines avant de les mettre dans le grille-pain. Si ? Excusez-moi. À chacun ses préférences. Mais, dans tous les cas, reconnaissons que la plupart des gens effectuent tous ces gestes mécaniquement, sans y réfléchir. Pourtant, ils répondent bel et bien à une procédure qui ne varie pas d’une journée à l’autre (enfin, sauf si vous êtes en retard pour aller travailler).

Les ordinateurs sont incapables d’exécuter des tâches en l’absence de procédures. Autrement dit, vous devez lui expliquer quelles étapes il doit effectuer, dans quel ordre, et quels sont les cas particuliers (les exceptions) auxquels il doit répondre. Toutes ces informations (et plus encore) sont définies à l’intérieur d’une application. Pour faire court, une application est simplement une procédure écrite que vous utilisez pour expliquer à l’ordinateur ce qu’il doit faire, quand il doit le faire, et comment il doit le faire. Du fait que vous utilisez des procédures dans pratiquement chaque instant de votre vie, tout ce que vous avez à faire, c’est d’appliquer des connaissances que vous possédez déjà pour expliquer à un ordinateur ce qu’il doit réaliser. D’accord, c’est un peu simpliste, mais vous voyez l’idée.

Écrire des procédures

Lorsque j’étais écolier, notre institutrice nous demandait régulièrement d’écrire sur un papier une série d’étapes, par exemple pour faire griller du pain comme dans l’exemple ci-dessus. Chaque papier était lu, et on expérimentait ce qu’il décrivait. D’accord, on faisait parfois des erreurs. Je me souviens d’une fois où j’avais oublié de mentionner qu’il fallait enlever les tranches du grille-pain avant de les tartiner. Je n’ose même pas vous raconter le résultat… Mais ces leçons m’ont été très utiles. Il est vrai qu’écrire des procédures n’est pas un long fleuve tranquille, et que souvent nous oublions de préciser telle ou telle étape en supposant que les autres vont comprendre ce que nous voulons faire. Mais c’est une mauvaise hypothèse.

Dans la vraie vie, de nombreuses expériences reposent sur la mise en œuvre de procédures. Songez un instant à la check-list que doivent respecter les pilotes avant un décollage. Sans une procédure bien rodée, l’avion risquerait bien de s’écraser. Apprendre à écrire une bonne procédure prend du temps, mais cela en vaut la peine. Cela ne marche généralement pas du premier coup, mais c’est quand même une possibilité. Et écrire une procédure ne suffit pas. Il faut aussi la tester, notamment en faisant appel à une ou plusieurs personnes qui ne connaissent pas la règle du jeu et ne sont pas familiarisées avec les tâches à mettre en œuvre. Lorsque vous travaillez avec un ordinateur, c’est lui qui est votre premier et meilleur cobaye. Et, croyez-moi, les enfants en sont encore de bien meilleurs pour trouver les failles dans vos procédures…

Les applications sont des procédures comme les autres

Lorsque vous écrivez une application, vous écrivez en réalité une procédure qui définit une série d’étapes que l’ordinateur devrait exécuter pour accomplir certaines tâches, ce que vous voulez lui voir faire. Si vous manquez une étape, vous n’obtiendrez pas les résultats escomptés. L’ordinateur ne sait pas ce que vous voulez dire, ou ce que vous avez l’intention de lui faire réaliser. La seule chose qu’il comprenne, c’est que vous lui avez fourni une procédure spécifique, et qu’il doit suivre les étapes de celle-ci.

Comprendre que les ordinateurs font les choses à la lettre

Il y a sans doute des personnes qui suivent des procédures que vous avez créées. Elles compensent automatiquement les déficiences de votre procédure en fonction de leur propre expérience, ou prennent des notes pour signaler ce qui ne va pas. En d’autres termes, les êtres humains sont capables d’interpréter vos intentions pour en combler les lacunes.

Lorsque vous commencez à écrire des programmes pour ordinateur, vous ressentez généralement de la frustration, car la machine effectue les tâches qui lui sont dévolues d’une manière totalement précise, et elle prend vos instructions au pied de la lettre. Par exemple, si vous dites à l’ordinateur qu’une certaine valeur devrait être égale à 5, l’ordinateur recherche une valeur strictement égale à 5. Point. Un humain pourrait voir 4,95, et comprendre que cette valeur répond en fait à votre demande. Pour l’ordinateur, 4,95 et 5 sont deux choses bien différentes. En bref, les ordinateurs sont inflexibles, pas du tout intuitifs et manquent totalement d’imagination. Lorsque vous écrivez une procédure informatique, l’ordinateur doit faire ce que vous demandez avec une précision totale, sans jamais varier dans le temps, et sans jamais modifier ou interpréter votre procédure.

Définir ce qu’est une application

Comme je l’ai déjà mentionné, les applications fournissent des moyens pour définir des idées humaines avec précision, et d’une manière telle qu’elle soit compréhensible par un ordinateur. Pour atteindre cet objectif, l’application s’appuie sur une ou plusieurs procédures qui décrivent comment manipuler certaines données, et comment les présenter. Par exemple, vous pouvez voir sur votre écran quelque chose qui est affiché par votre traitement de texte. Mais, pour cela, l’ordinateur a besoin de procédures permettant de retrouver les données qui forment ce texte sur le disque, leur donner une mise en forme compréhensible par vous, puis vous présenter le résultat. Les sections qui suivent définissent les spécificités d’une application plus en détail.

Comprendre que les ordinateurs utilisent un langage spécial

Les langues humaines sont complexes et difficiles à comprendre. Même des applications telles que Siri, Google Assistant, Alexa ou Cortana ont de sérieuses limites quant à la compréhension de ce que vous dites. Au fil des ans, les ordinateurs (ou plutôt ceux qui développent des applications pour les ordinateurs) ont acquis la possibilité de transformer la voix en données et de comprendre que certains mots sont des commandes qu’on veut les voir exécuter. Pour autant, cette compréhension ne dépasse pas un certain niveau de complexité. Prenons l’exemple d’un texte juridique. Si vous lisez un compte-rendu de jugement, vous allez penser qu’il s’agit d’un langage extraterrestre. Cependant, le but est de transcrire par des mots des idées et des concepts d’une manière qui ne soit pas sujette à l’interprétation. Cet objectif est difficile à atteindre, justement parce que le langage humain est imprécis.

De leur côté, les ordinateurs sont, par essence, incapables de s’appuyer uniquement sur votre langage pour comprendre les procédures que vous écrivez. Comme je l’ai dit plus haut, ils prennent celles-ci au pied de la lettre. Si vous écriviez des applications comme vous parlez, les résultats seraient totalement imprévisibles. C’est pourquoi vous devez utiliser un langage spécial, appelé un langage de programmation, pour communiquer avec les ordinateurs. Ce, ou plutôt ces langages spéciaux, rendent possible l’écriture de procédures qui sont à la fois spécifiques et totalement compréhensibles aussi bien par les humains que par les ordinateurs.

En fait, les ordinateurs ne parlent aucun langage. Ils utilisent des codes binaires pour modifier en interne des sortes de bascules et effectuer des tas de calculs mathématiques. Ils ne comprennent même pas les lettres, rien que les nombres. Une application particulière transforme le langage spécifique que vous utilisez pour communiquer avec l’ordinateur en codes binaires (des 0 et des 1, et c’est tout). Évidemment, c’est là un sujet que vous n’avez en aucun cas besoin d’approfondir pour lire ce livre. Mais il est intéressant de savoir que les ordinateurs ne connaissent que les chiffres, et donc ne parlent aucune langue.

Aider les humains à parler à l’ordinateur

Il est important de ne jamais perdre de vue l’objectif que vous poursuivez lorsque vous écrivez une application. Celle-ci sert à aider les humains à dialoguer avec l’ordinateur d’une certaine manière. Toute application travaille avec certains types de données qui sont entrées, stockées, manipulées et « recrachées » pour fournir les résultats désirés. Que cette application soit un jeu ou un tableur, l’idée de base est exactement la même. Les ordinateurs travaillent avec des données fournies par des êtres humains pour délivrer un certain résultat.

Lorsque vous créez une application, vous fournissez une nouvelle méthode pour le dialogue entre l’homme et la machine. La nouvelle approche que vous construisez permettra à d’autres humains de voir des données d’une nouvelle façon. La communication homme/machine devrait être suffisamment simple pour que l’application semble disparaître de la vue. Réfléchissez à votre propre expérience d’utilisateur. Les meilleures applications sont bien celles qui vous permettent de vous concentrer uniquement sur les données avec lesquelles vous interagissez. Par exemple, un jeu ne sera véritablement « immersif » que si vous n’avez à vous occuper que de la planète que vous essayez de sauver, ou des ennemis que vous devez combattre, et pas du tout de l’application qui vous permet de faire tout cela.

Une des meilleures façons de commencer à réfléchir à une application que vous voudriez créer, c’est de regarder comment d’autres gens procèdent. Écrire ce que vous aimez ou pas dans d’autres applications est un bon point départ pour définir ce que vous voulez faire, comment vous voulez le faire, et comment tout cela devrait se présenter aux yeux du monde. Voici quelques questions que vous pouvez vous poser au cours de ce processus mental :

» Qu’est-ce qui m’a gêné dans l’application ?

» Quelles fonctions étaient faciles à utiliser ?

» Quelles fonctions étaient difficiles à utiliser ?

» Est-ce qu’il était facile ou pas d’interagir avec mes données ?

» Comment serait-il possible d’améliorer ces interactions ?

» Qu’est-ce que je pourrais faire pour améliorer une telle application ?

Les développeurs professionnels se posent bien d’autres questions lorsqu’ils créent des applications. Mais celles-ci constituent un bon point de départ, car elles vous aident à mieux percevoir les applications comme des moyens d’aider les êtres humains à communiquer avec les ordinateurs. Si vous vous êtes déjà senti frustré en utilisant une application, vous pouvez comprendre ce que vos utilisateurs pourront ressentir si vous ne vous êtes pas posé les bonnes questions au cours de votre travail de développement. La communication est l’élément le plus important de toute application que vous êtes appelé à créer.

Vous pouvez aussi commencer à réfléchir à la manière dont vous travaillez. Commencez à écrire des procédures pour des choses que vous faites. Une bonne idée consiste à prendre le processus étape par étape, en écrivant à chaque fois toutes vos réflexions. Lorsque vous avez terminé, demandez à quelqu’un d’autre de tester votre procédure afin de voir si elle marche effectivement. Vous pourriez être surpris de découvrir que, même en fournissant de gros efforts, vous pouvez facilement oublier d’inclure certaines étapes.

La pire application du monde débute généralement par le fait que le programmeur ne sait pas exactement ce que cette application est censée faire, en quoi elle est spéciale, ce qu’elle doit apporter, et à qui elle est destinée. Lorsque vous décidez de créer une application, assurez-vous que vous savez pourquoi vous le faites, et quel est l’objectif que vous voulez atteindre. Mettre un plan de bataille en place aide beaucoup à bien programmer, et à y prendre du plaisir (ce qui a son importance). Vous pourrez ainsi travailler posément sur votre nouvelle application et voir les étapes se réaliser les unes après les autres jusqu’à ce que tout soit opérationnel. Après quoi, vos amis à qui vous demanderez de tester votre application trouveront qu’elle est vraiment cool, et vous aussi.

Comprendre pourquoi Python est si cool

Il existe de nombreux langages de programmation. En fait, un étudiant pourrait passer tout un semestre à étudier des langages de programmation, et ne même pas entendre parler de certains d’entre eux. Vous pourriez penser que les développeurs sont parfaitement à l’aise avec tout cela, et qu’ils en choisissent simplement un pour communiquer avec l’ordinateur. Mais ce n’est voir que par le petit bout de la lorgnette.

Il y a de bonnes raisons qui justifient la création de nouveaux langages. Chaque langage a quelque chose de particulier à offrir, quelque chose qu’il fait particulièrement bien. De plus, la technologie évolue sans cesse, et donc les langages de programmation doivent eux aussi progresser. Du fait que créer une application est une affaire de communication efficace, de nombreux programmeurs connaissent plusieurs langages de manière à pouvoir choisir celui qui convient le mieux pour réaliser une tâche particulière. Par exemple, un certain langage sera meilleur pour gérer une base de données, tandis qu’un autre sera particulièrement adapté pour créer une interface utilisateur.

Comme tous les langages de programmation, Python fait certaines choses exceptionnellement bien ; vous devez donc savoir quels sont ses principaux champs de compétence avant de commencer à l’utiliser. Vous pourriez bien être étonné par les choses réellement cool que vous pouvez réaliser avec Python. Connaître les forces et les faiblesses d’un langage de programmation vous aide non seulement à en tirer le meilleur parti, mais aussi à éviter les frustrations dues à l’emploi d’un langage pour des choses qu’il ne fait pas très bien. Les sections qui suivent devraient vous aider à prendre ce genre de décision.

Quelques bonnes raisons de choisir Python

La plupart des langages de programmation sont créés pour répondre à des besoins spécifiques. Ces besoins aident à définir les caractéristiques du langage, et à déterminer ce que vous pouvez faire avec lui. En fait, il ne peut pas exister de langage « universel » , car les gens ont des buts et des besoins extrêmement variés lorsqu’ils créent des applications. Dans le cas de Python, l’objectif principal était de produire un langage de programmation qui aide les programmeurs à être efficaces et productifs. En gardant cela présent à l’esprit, voici quelques (bonnes) raisons d’utiliser Python pour créer vos applications :

» Moins de temps de développement : Le code Python est généralement deux à trois fois plus court que l’équivalent écrit en C/C++ ou en Java. Vous passez donc moins de temps à écrire votre application, et plus de temps à l’utiliser.

» Facilité de lecture : Un langage de programmation est comme tout autre langage, vous devez être capable de le lire pour comprendre ce qu’il fait. Le code Python tend à être plus facile à lire que d’autres, ce qui signifie que vous passez moins de temps à l’interpréter, et plus de temps à y apporter les modifications essentielles.

» Temps d’apprentissage réduit : Les créateurs de Python ont voulu fabriquer un langage de programmation avec le moins de règles complexes possible pouvant rendre difficile son apprentissage. Après tout, les programmeurs veulent créer des applications, pas apprendre de nouvelles langues obscures et tarabiscotées.

Vous devez comprendre que si Python est un langage populaire, ce n’est pas le seul dans ce cas. Ainsi, si vous envisagiez de chercher du travail dans le milieu de la programmation, il faut reconnaître que Python serait un excellent choix, mais que C/C++, Java, Swift ou encore C# seraient aussi de très bons choix. Assurez-vous que vous choisissez un langage que vous aimez, et qui soit en même temps bien adapté aux besoins du développement de votre application, de même qu’aux objectifs que vous poursuivez. Python est le langage qui caracole en tête des charts depuis quelque temps déjà (sauf en ce qui concerne le développement d’applications pour les appareils mobiles), et c’est aussi le langage pour l’apprentissage de la programmation choisi dans nombre d’établissements scolaires.

Décider comment tirer un bénéfice personnel de Python

En dernier ressort, vous pouvez utiliser n’importe quel langage de programmation pour écrire toutes sortes d’applications. Mais si vous vous trompez dans votre choix, le processus risque d’être lent, avec de gros risques d’erreurs ou de bogues (de fautes, si vous voulez), et vous allez détester ce langage. Mais vous pouvez quand même arriver au bout de vos peines. Bien entendu, personne n’a envie de vivre une telle expérience, et il est donc important de savoir quels types d’applications sont généralement créés avec Python. En voici quelques exemples (évidemment non exhaustifs) :

» Créer des exemples de « maquettes » d’applications : Les développeurs ont souvent besoin de produire un prototype, disons comme une maquette d’application, avant d’obtenir les ressources qui leur permettront de créer l’application elle-même. Python est un outil adapté à la productivité, ce qui permet de fabriquer rapidement de tels prototypes.

» Créer des scripts pour des applications Web : Même si JavaScript est probablement le langage de programmation le plus populaire dans ce domaine, Python est un deuxième tout proche de la première place. Il offre en particulier des fonctionnalités que ne propose pas JavaScript, et sa grande efficacité accélère la création de ce type d’applications (ce qui est un plus dans notre monde en accélération permanente).

» Concevoir des applications mathématiques, scientifiques ou d’ingénierie : Il est intéressant de savoir que Python donne accès à des bibliothèques qui facilitent grandement la création de telles applications. Les deux bibliothèques les plus populaires sont NumPy (numpy.org) et SciPy (scipy.org). Elles permettent de réduire considérablement le temps passé à écrire des applications à caractère scientifique.

» Travailler avec XML : XML (pour eXtensible Markup Language, ou langage de balises étendu) est la base utilisée pour le stockage de la plupart des données sur l’Internet, ainsi que par de nombreuses applications du bureau. Contrairement à la plupart des langages, pour qui XML est bien souvent comme une pièce rapportée, Python en fait un citoyen de première classe. Si vous avez besoin de travailler avec un service Web, ce qui est la principale méthode pour échanger des informations sur l’Internet (ou toute autre application faisant un usage intensif du XML), Python est un excellent choix.

» Interagir avec des bases de données : L’industrie et les services reposent très largement de nos jours sur la gestion de bases de données. Python n’est pas un langage de requête, comme SQL, mais il est très bon dans l’interaction avec les bases de données. Il rend la création de connexions et de manipulation des données relativement aisée.

» Créer des applications d’apprentissage automatique et de deep learning : Python est devenu au fil des années incontournable dans les développements de l’intelligence artificielle, notamment grâce à des bibliothèques telles que Scikit-learn, TensorFlow, pandas, Keras, Theno, etc.

» Développer des interfaces utilisateur : Python ne ressemble pas à d’autres langages comme C#, où vous disposez d’un outil de conception intégré pour réaliser une interface utilisateur et où vous pouvez simplement déposer des éléments par glisser-déposer à partir d’une boîte à outils pour créer une interface utilisateur. Cependant, il possède de multiples extensions qui rendent ce genre d’interface facile à fabriquer (voyez l’adresse https://wiki.python.org/moin/GuiProgramming pour plus de détails). En fait, Python n’est pas lié à tel ou tel type d’interface. Vous pouvez utiliser la méthode qui convient le mieux à vos besoins.

Quelles organisations utilisent Python ?

Python est très bien adapté aux tâches pour lesquelles il a été conçu. Cela va sans dire, mais encore mieux en le disant… En fait, c’est la raison pour laquelle de nombreuses organisations se servent de Python pour des prototypes de développement de leurs propres applications (et bien entendu plus si affinité). Vous avez donc besoin de connaître un tel langage de programmation, car ces grandes organisations ont tendance à investir dans son développement pour le rendre meilleur.

Citons donc quelques noms connus :

» Go.com (go.com) : Application Web.

» Google (www.google.com) : Moteur de recherche.

» NASA (www.nasa.gov) : Applications scientifiques.

» Nyse – New York Stock Exchange (nyse.nyx.com) : Applications Web.

» Redhat (www.redhat.com) : Outils d’installation Linux.

» Yahoo! (www.yahoo.com) : Des parties de la messagerie Yahoo!.

» YouTube (www.youtube.com) : Moteur graphique.

Cette liste ne constitue évidemment qu’une toute petite partie des organisations qui utilisent Python d’une manière extensive. Pour en savoir plus à ce sujet, voyez l’adresse www.python.org/about/success/. Le nombre de ces success stories est devenu si important que cette liste est probablement très incomplète et qu’il faudrait créer de nouvelles catégories pour mieux prendre conscience de cette réussite.

Trouver des applications Python utiles

Vous pouvez très bien avoir une application Python en pleine activité sur votre ordinateur sans que vous en ayez même conscience. Python est en effet utilisé de nos jours dans de multiples types d’applications. Cela va des utilitaires qui fonctionnent dans une console (une fenêtre de commandes, si vous préférez) à des suites dédiées à la Conception Assistée par Ordinateur (la CAO). Certaines applications sont dédiées aux appareils portables, tandis que d’autres sont réservées à des services pour de grandes entreprises. En résumé, aucun domaine n’échappe aux applications écrites en Python. Pour autant, rien ne remplace l’expérience que vous pouvez retirer de celle d’autres utilisateurs. Vous pouvez trouver de multiples références en ligne, mais le meilleur point de départ se trouve à l’adresse wiki.python.org/moin/Applications.

Désolé, mais vous aurez besoin de réviser votre anglais pour accéder à toutes ces ressources !

En tant que programmeur Python, vous avez aussi envie de savoir que nombre d’outils de développement sont facilement accessibles afin de vous faciliter l’existence. Un outil de développement fournit certains niveaux d’automation lorsque vous écrivez des procédures qui indiquent à l’ordinateur ce qu’il doit faire. Plus il y a d’outils de développement, et moins vous avez à travailler pour créer une application parfaitement fonctionnelle. Les développeurs adorent partager leurs listes d’outils préférés. Mais, en tout état de cause, vous devriez pouvoir trouver votre bonheur (ou une bonne partie de celui-ci) en consultant la page www.python.org/about/apps/.

Des outils (ou bibliothèques) tels que NumPy ou SciPy ont déjà été abordés dans ce chapitre. La suite de ce livre liste d’autres outils. En fait, vous devez simplement vous assurer que vous téléchargez et installez ce dont vous avez besoin pour continuer à progresser.

Comparer Python avec d’autres langages

Comparer un langage avec un autre est un exercice assez dangereux, car il s’agit à la fois d’une question de préférences personnelles et de besoins à assurer, comme d’ailleurs dans toute démarche structurée et scientifique. Il est donc important de bien comprendre que Python n’est pas le langage universel dont tout le monde peut rêver en vain. Il n’y a pas de meilleur langage de programmation. Il y a simplement des langages qui sont mieux adaptés pour tel ou tel type d’application. Cela étant posé, vous pouvez également vous référer aux comparaisons consultables sur la page wiki.python.org/moin/LanguageComparisons.

C#

Des tas de gens clament que Microsoft a simplement copié Java pour créer C#. Cela étant dit, il est vrai que C# a certains avantages (ou désavantages) comparativement à Java. La première remarque (incontestable) est que C# est plus facile à apprendre et à utiliser. En revanche, et puisque nous parlons ici de Python, celui-ci a plusieurs avantages :

» Il est incontestablement plus facile à apprendre.

» Son code est plus concis.

» Il est totalement gratuit (ou open source comme on dit).

» Il supporte mieux les plates-formes multiples.

» Il permet d’utiliser facilement des environnements de développement variés.

» Il est facile à étendre via des composants Java ou C/C++.

» Il supporte mieux les développements scientifiques.

Java

Depuis bien longtemps, les développeurs recherchent un langage qui leur permettrait d’écrire une application une fois, et de la faire exécuter en tout temps et partout. Java est conçu pour être utilisé sur de multiples plates-formes. Il repose pour cela sur certains « trucs » que vous découvrirez plus tard dans ce livre afin d’accomplir cette « magie » . Pour l’instant, et pour ce qui nous concerne ici, il vous suffit de savoir que Java a rencontré un tel succès qu’il a été largement copié (avec un niveau de succès très inégal). Mais Python conserve un certain nombre d’avantages :

» Il est nettement plus facile à apprendre.

» Son code est bien plus concis.

» Les variables de Python (ces choses qui sont stockées dans la mémoire de votre ordinateur) peuvent contenir des données non seulement extrêmement variées, mais aussi totalement dynamiques.

» Les développements sont bien plus rapides.

Pas mal, non ?

Perl

Perl est l’acronyme de Practical Extraction and Report Language ( « langage d’extraction et de rapport pratique » , ce qui n’est pas très joli, non ?). Le point fort de Perl, c’est l’extraction d’informations depuis des bases de données et la présentation de celles-ci. Bien entendu, Perl s’est développé bien au-delà de ses sources. Vous pouvez donc l’utiliser pour écrire toutes sortes d’applications. Mais, comparativement à Perl, Python conserve là encore un certain nombre d’avantages :

» Il est plus simple à apprendre.

» Il est plus simple à lire.

» Il protège mieux les données.

» Il s’intègre mieux avec Java.

» Il est moins dépendant des diverses plates-formes.

Chapitre 2 Obtenir votre propre copie de Python

DANS CE CHAPITRE :

» Obtenir une copie de Python pour votre système.

» Effectuer l’installation de Python.

» Trouver et utiliser Python sur votre système.

» S’assurer du bon fonctionnement de l’installation.

Créer des applications nécessite que vous possédiez une autre application (à moins de vouloir communiquer avec l’ordinateur en code binaire, une expérience que même les programmeurs chevronnés évitent). Si vous voulez écrire une application dans le langage Python, vous avez donc besoin d’autres applications qui vous permettent de le faire. Celles-ci vous aideront à créer votre code Python tout en vous aidant dans ce travail, et vous permettront ensuite d’exécuter ce code.

Dans ce chapitre, nous allons voir comment obtenir votre copie de Python, comment l’installer sur votre disque dur, comment localiser cette installation pour pouvoir l’utiliser, et enfin comment la tester afin de vérifier que tout fonctionne correctement.

Télécharger la version dont vous avez besoin

Chaque plate-forme (la combinaison entre le matériel dont sont composés l’ordinateur et le système d’exploitation de celui-ci) a des règles spéciales qu’elle suit lorsqu’elle exécute des applications. Mais Python vous cache fort heureusement tous ces détails. Vous tapez du code qui s’exécute sur n’importe quelle plate-forme supportée par Python, et celui-ci convertit votre code dans quelque chose de compréhensible par cette plate-forme.

Pour que cette traduction puisse se faire, vous devez donc posséder une version de Python fonctionnant sur votre plate-forme particulière. La liste des plates-formes supportées par Python est d’ailleurs fournie.

Les exemples de ce livre ont été testés sous Windows, Mac OS X/macOS et Linux. Mais ils pourraient parfaitement fonctionner sur toutes les autres plates-formes, puisque le code n’est lié à aucune d’entre elles, uniquement à Python. Au moment où ce livre est écrit, Python en est à sa version 3.8.0.

Pour obtenir la version de Python adaptée à votre propre plate-forme, vous devez accéder dans votre navigateur Web au site www.python.org. Dans la page d’accueil, cliquez sur le bouton Download (voir la Figure 2.1). Le site vous propose en priorité Windows et Mac OS X (ce sont les plus répandus), mais vous pouvez aussi cliquer sur le lien Other Platforms pour accéder à la liste des plates-formes supportées par Python (voir la Figure 2.2).

FIGURE 2.1 La page d’accueil de Python.

Nous nous en tiendrons dans ce livre à l’implémentation « traditionnelle » de Python (appelée CPython). Mais le lien Alternative Implementations vous permet, si vous le souhaitez, d’accéder à toute une série de variantes proposant par exemple un éditeur plus avancé, ou une implémentation plus spécifiquement dédiée à certains types d’applications, notamment scientifiques (voir la Figure 2.3). En règle générale, ces variantes (de même que les implémentations sur d’autres plates-formes) sont réalisées et gérées par des passionnés, et non par les membres de l’équipe de Python. Si vous avez des questions, vous devrez donc vous intéresser à leurs publications et leurs forums de discussion.

FIGURE 2.2 Choisir une autre plate-forme.

FIGURE 2.3 Choisir une autre implémentation de Python.

Si la page Web de Python n’a pas été refondue depuis l’écriture de ce livre, le mieux est sans doute de choisir le lien qui convient dans la zone d’en-tête (soit dans la liste Downloads, soit via le lien Latest). Vous devrez ensuite si nécessaire choisir un numéro de version (la dernière en date est la version 3.8.0), ainsi qu’une implémentation 32 bits ou (surtout) 64 bits.

Le site propose divers types de fichiers à télécharger : exécutable, compressé ou encore installation à partir du Web. Tant qu’à se lancer, autant choisir la version exécutable de l’installation. Mais, dans tous les cas, vous obtiendrez à l’arrivée l’installation de Python sur votre plate-forme.

Installer Python

Une fois votre copie de Python téléchargée, il est temps de l’installer sur votre système. Le fichier que vous avez obtenu contient tout ce qu’il vous faut pour débuter :

» l’interpréteur Python ;

» une documentation (fichiers d’aide) ;

» l’accès en mode Ligne de commandes ;

» l’environnement de développement intégré (IDLE) ;

» le module de désinstallation (uniquement sur certaines plates-formes).

Voyons d’un peu plus près comment les choses se passent sous Windows, Mac OS X et Linux.

Travailler avec Windows

L’installation de Python sous Windows s’effectue comme avec n’importe quelle autre application. En fait, il vous suffit de retrouver le fichier que vous avez téléchargé pour lancer la procédure. Suivez ces étapes :

1. Localisez la copie de Python que vous avez téléchargée.

Le nom du fichier peut varier selon le mode choisi. Normalement, il devrait se présenter sous la forme python-3.8.0.exe (32 bits) ou encore python-3.8.0-amd64.exe (64 bits). L’exécutable contient le numéro de la version actuelle de Python, en l’occurrence 3.8.0.

2. Faites un double clic sur le fichier d’installation.

Windows devrait afficher une boîte de dialogue vous demandant si vous voulez exécuter ce fichier. Comme la réponse est évidemment oui, cliquez sur le bouton Exécuter.

L’installateur de Python va apparaître (voir la Figure 2.4). En l’occurrence, il s’agit d’une version 64 bits, donc plus « moderne », mais la démarche serait la même en 32 bits (le choix entre les deux, quand il est disponible, n’a pas d’importance particulière tant qu’il ne s’agit pas de développer des projets considérables).

FIGURE 2.4 Python vous propose de s’installer pour tous les utilisateurs et d’ajouter son chemin d’accès à Windows.

3. Cochez la case qui indique Add Python 3.8 to PATH.

Cela facilitera les relations entre Windows et Python.

En cochant cette option, vous gagnerez du temps par la suite. Elle permet en effet d’accéder à Python depuis l’Invite de commandes de Windows. Ne vous souciez pas de tout cela pour l’instant, mais c’est réellement une bonne chose que de le faire. Dans tout ce qui suit, je supposerai donc que vous avez coché cette option.

4. Cliquez sur Install Now pour accepter l’installation complète de Python dans le dossier proposé par défaut, ou sur Customize installation pour effectuer des choix plus personnels.

Ici, nous allons retenir la seconde proposition de manière à sélectionner une destination plus conventionnelle.

5. Après avoir cliqué sur Customize installation, il vous est demandé quels composants optionnels vous voulez copier. Laissez toutes les cases cochées et cliquez sur Next (Suivant).

6. Dans la fenêtre qui suit, indiquez le dossier de destination.

Sur la Figure 2.5, vous pouvez constater que j’ai choisi comme nom de dossier C:\Python38. C’est une bonne solution de facilité.

Utiliser comme emplacement C:\ProgramFiles(x86)\Python3.8 est problématique, et ce pour deux raisons. La première est que ce nom comporte une espace, ce qui compliquerait l’accès à ce dossier depuis l’application. En second lieu, ce dossier nécessite des privilèges d’administrateur, et vous risquez donc d’avoir constamment à vous battre avec le Contrôle de compte utilisateur de Windows.

FIGURE 2.5 Vous devez décider de l’emplacement où votre copie de Python sera installée.

7. Une fois votre dossier de destination défini, cliquez sur le bouton Install.

Vous n’avez plus qu’à laisser l’installation se dérouler normalement.

8. Une fois l’installation terminée, cliquez sur le bouton Close (voir la Figure 2.6).

Désactiver la limitation à 260 caractères de la longueur du chemin d’accès ne devrait pas être nécessaire, sauf cas très particulier.