Académique Documents
Professionnel Documents
Culture Documents
Abdelhak Rahmani
Formateur animateur au CDC Digital
1
Module 1 : Introduction à Python et à la programmation informatique
Dans ce module, vous en apprendrez davantage sur :
Un programme rend un ordinateur utilisable. Sans programme, un ordinateur, même le plus puissant,
n'est rien d'autre qu'un objet. De même, sans joueur, un piano n'est rien d'autre qu'une boîte en bois.
Les ordinateurs sont capables d'effectuer des tâches très complexes, mais cette capacité n'est pas
innée. La nature d'un ordinateur est tout à fait différente.
Il ne peut exécuter que des opérations extrêmement simples, par exemple, un ordinateur ne peut pas
évaluer la valeur d'une fonction mathématique compliquée par lui-même, bien que cela ne soit pas
au-delà du domaine du possible dans un avenir proche.
Les ordinateurs contemporains ne peuvent qu'évaluer les résultats d'opérations très fondamentales,
comme l'addition ou la division, mais ils peuvent le faire très rapidement, et peuvent répéter ces
actions pratiquement autant de fois que nécessaire.
Imaginez que vous vouliez connaître la vitesse moyenne que vous avez atteinte au cours d'un long
voyage. Vous connaissez la distance, vous connaissez le temps, vous avez besoin de la vitesse.
Naturellement, l'ordinateur sera capable de calculer cela, mais l'ordinateur n'est pas conscient de
choses telles que la distance, la vitesse ou le temps. Il est donc nécessaire de donner des instructions
à l'ordinateur pour qu'il le fasse :
Ces quatre actions simples forment un programme. Bien sûr, ces exemples ne sont pas formalisés et
sont très loin de ce que l'ordinateur peut comprendre, mais ils sont suffisamment bons pour être
traduits dans une langue que l'ordinateur peut accepter.
2
Une autre langue que vous utilisez chaque jour est votre langue maternelle, que vous utilisez pour
manifester votre volonté et pour réfléchir à la réalité. Les ordinateurs ont aussi leur propre langage,
appelé langage machine, qui est très rudimentaire.
Les commandes qu'il reconnaît sont très simples. Nous pouvons imaginer que l'ordinateur répond à
des ordres tels que "prenez ce nombre, divisez-le par un autre et enregistrez le résultat".
Un ensemble complet de commandes connues est appelé une liste d'instructions, parfois abrégée en
LI. Les différents types d'ordinateurs peuvent varier en fonction de la taille de leurs LI, et les
instructions peuvent être complètement différentes selon les modèles.
Aucun ordinateur n'est actuellement capable de créer un nouveau langage. Cependant, cela pourrait
changer bientôt. D'autre part, les gens utilisent aussi un certain nombre de langues très différentes,
mais ces langues se sont développées naturellement. De plus, elles continuent d'évoluer.
De nouveaux mots sont créés chaque jour et les anciens mots disparaissent. Ces langues sont appelées
langues naturelles.
UN ALPHABET
Un ensemble de symboles utilisés pour construire les mots d'une certaine langue (par exemple,
l'alphabet latin pour l'anglais, l'alphabet cyrillique pour le russe, le kanji pour le japonais, etc.).
UN LEXIS
Chaque langage de programmation a son dictionnaire et vous devez le maîtriser ; heureusement, il est
beaucoup plus simple et plus petit que le dictionnaire de n'importe quel langage naturel ;
SYNTAXIQUEMENT
SEMANTIQUEMENT
Malheureusement, un programmeur peut aussi faire des erreurs avec chacun des quatre sens
mentionnés ci-dessus. Chacun d'entre eux peut rendre le programme complètement inutile.
Supposons que vous ayez écrit un programme avec succès. Comment persuader l'ordinateur de
l’exécuter ? Vous devez traduire votre programme en langage machine. Heureusement, la traduction
peut être effectuée par l'ordinateur lui-même, ce qui rend le processus rapide et efficace.
3
1- LA COMPILATION
Le programme source est traduit une fois (cependant, cet acte doit être répété chaque fois que vous
modifiez le code source) en obtenant un fichier (par exemple, un fichier .exe si le code est destiné à
être exécuté sous MS Windows) contenant le code machine ; vous pouvez maintenant distribuer le
fichier dans le monde entier ; le programme qui effectue cette traduction est appelé un compilateur
ou un traducteur ;
2- L’INTERPRETATION
Vous (ou tout utilisateur du code) pouvez traduire le programme source chaque fois qu'il doit être
exécuté ; le programme effectuant ce type de transformation est appelé un interprète, car il interprète
le code chaque fois qu'il doit être exécuté ; cela signifie également que vous ne pouvez pas simplement
distribuer le code source tel quel, car l'utilisateur final a également besoin de l'interprète pour
l'exécuter.
Pour des raisons très fondamentales, un langage de programmation de haut niveau particulier est
conçu pour entrer dans l'une de ces deux catégories.
Il y a très peu de langages qui peuvent être à la fois compilés et interprétés. Habituellement, un langage
de programmation est projeté avec ce facteur dans l'esprit de ses constructeurs - sera-t-il compilé ou
interprété ?
L'interpréteur lit le code source d'une manière qui est courante dans la culture occidentale : de haut
en bas et de gauche à droite. Il y a quelques exceptions - elles seront abordées plus tard dans le cours.
Tout d'abord, l'interpréteur vérifie si toutes les lignes ultérieures sont correctes (en utilisant les quatre
aspects couverts précédemment).
Si le compilateur trouve une erreur, il termine son travail immédiatement. Dans ce cas, le seul résultat
est un message d'erreur. L'interpréteur vous indiquera où se trouve l'erreur et quelle en est la cause.
Toutefois, ces messages peuvent être trompeurs, car l'interpréteur n'est pas en mesure de suivre vos
intentions exactes et peut détecter les erreurs à une certaine distance de leurs causes réelles.
Par exemple, si vous essayez d'utiliser une entité d'un nom inconnu, cela provoquera une erreur, mais
l'erreur sera découverte à l'endroit où on essaie d'utiliser l'entité, et non à l'endroit où le nom de la
nouvelle entité a été introduite.
En d'autres termes, la raison réelle est généralement située un peu plus tôt dans le code, par exemple
à l'endroit où vous avez dû informer l'interpréteur que vous alliez utiliser l'entité du nom.
Il est également possible qu'une partie importante du code soit exécutée avec succès avant que
l'interprète ne trouve une erreur. C'est un comportement normal dans ce modèle d'exécution.
Vous pouvez vous demander maintenant : qu'est-ce qui est le mieux ? Le modèle de "compilation" ou
le modèle d'"interprétation" ? Il n'y a pas de réponse évidente. S'il y avait eu une réponse, l'un de ces
4
modèles aurait cessé d'exister depuis longtemps. Les deux modèles ont leurs avantages et leurs
inconvénients.
Python est un langage interprété. Cela signifie qu'il hérite de tous les avantages et
inconvénients décrits. Bien entendu, il ajoute certaines de ses caractéristiques uniques aux
deux ensembles.
Si vous voulez programmer en Python, vous aurez besoin de l'interpréteur Python. Vous ne
pourrez pas exécuter votre code sans lui. Heureusement, Python est gratuit. C'est l'un de ses
plus importants avantages.
Pour des raisons historiques, les langages conçus pour être utilisés à la manière de l'interprétation sont
souvent appelés langages de script, tandis que les programmes sources encodés à l'aide de ces
derniers sont appelés scripts.
5
Et si vous connaissez le python comme un grand serpent, le nom du langage de programmation Python
vient d'une ancienne série de sketchs comiques de la BBC intitulée Monty Python's Flying Circus.
Au plus fort de son succès, l'équipe des Monty Python présentait ses sketches en direct à des publics
du monde entier, notamment au Hollywood Bowl.
Comme Monty Python est considéré comme l'un des deux nutriments fondamentaux pour un
programmeur (l'autre étant la pizza), le créateur de Python a nommé le langage en l'honneur de la
série télévisée.
L'une des caractéristiques étonnantes de Python est le fait qu'il s'agit en fait du travail d'une seule
personne. Habituellement, les nouveaux langages de programmation sont développés et publiés par
de grandes entreprises employant de nombreux professionnels, et en raison des règles de copyright,
il est très difficile de nommer les personnes impliquées dans le projet. Python est une exception.
Il n'y a pas beaucoup de langages dont les auteurs sont connus par leur nom. Python a été créé par
Guido van Rossum, né en 1956 à Haarlem, aux Pays-Bas. Bien entendu, Guido van Rossum n'a pas
développé et fait évoluer lui-même tous les composants de Python.
La rapidité avec laquelle Python s'est répandu dans le monde est le résultat du travail continu de
milliers de programmeurs (très souvent anonymes), de testeurs, d'utilisateurs (dont beaucoup ne sont
pas des spécialistes de l'informatique) et d'enthousiastes, mais il faut dire que la toute première idée
(la graine dont Python a germé) est venue à une tête - celle de Guido.
Un langage facile et intuitif tout aussi puissant que ceux des principaux concurrents ;
Une source ouverte, afin que chacun puisse contribuer à son développement ;
Un code aussi compréhensible qu'un simple anglais ;
Adapté aux tâches quotidiennes, permettant des temps de développement courts.
Une vingtaine d'années plus tard, il est clair que toutes ces intentions se sont concrétisées. Certaines
sources affirment que Python est le langage de programmation le plus populaire au monde, tandis que
d'autres prétendent que c'est le troisième ou le cinquième.
6
Quoi qu'il en soit, il occupe toujours un rang élevé dans les dix premiers de la PYPL PopularitY of
Programming Language (http://pypl.github.io/PYPL.html) et la TIOBE Programming Community
Index (https://www.tiobe.com/tiobe-index/).
Le python n'est pas un langage jeune. Il est mature et digne de confiance. Ce n'est pas un miracle d'un
seul coup. C'est une étoile brillante dans le firmament de la programmation, et le temps passé à
apprendre Python est un très bon investissement.
Les raisons sont nombreuses - nous en avons déjà énuméré quelques-unes, mais nous allons les
énumérer à nouveau de manière plus pratique :
Il est facile à apprendre - le temps nécessaire pour apprendre Python est plus court que pour
de nombreux autres langages ; cela signifie qu'il est possible de commencer la programmation
proprement dite plus rapidement ;
Il est facile à enseigner - la charge de travail est plus faible que celle des autres langages ; cela
signifie que l'enseignant peut mettre davantage l'accent sur les techniques de programmation
générales (indépendantes du langage), en ne gaspillant pas son énergie à des tours exotiques,
des exceptions étranges et des règles incompréhensibles ;
Il est facile à utiliser pour écrire de nouveaux logiciels - il est souvent possible d'écrire du code
plus rapidement en utilisant Python ;
Il est facile à comprendre - il est aussi souvent plus facile de comprendre plus rapidement le
code de quelqu'un d'autre s'il est écrit en Python ;
Il est facile à obtenir, à installer et à déployer - Python est gratuit, ouvert et multiplateformes
; tous les langages ne peuvent pas se vanter de cela.
Il convient également de préciser que Python n'est pas la seule solution de ce type disponible sur le
marché des technologies de l'information.
7
Le premier est plus traditionnel, plus conservateur que Python, et ressemble à certains des bons vieux
langages dérivés du langage de programmation C classique.
En revanche, le second est plus innovant et plus riche en idées nouvelles que Python. Python lui-même
se situe quelque part entre ces deux créations.
L'Internet regorge de forums où l'on discute à l'infini de la supériorité de l'un de ces trois langages sur
les autres, si vous souhaitez en savoir plus sur chacun d'entre eux…
Python 2 est une version plus ancienne du Python original. Son développement a depuis été
intentionnellement bloqué, bien que cela ne signifie pas qu'il n'y a pas de mises à jour. Au contraire,
les mises à jour sont publiées régulièrement, mais elles ne sont pas destinées à modifier le langage de
manière significative. Elles corrigent plutôt les bogues et les failles de sécurité récemment découverts.
Le développement de Python 2 est déjà dans une impasse, mais Python 2 lui-même est encore bien
vivant.
Python 3 est la version la plus récente (pour être précis, la version actuelle) du langage. Il suit son
propre chemin d'évolution, créant ses propres normes et habitudes.
Le premier est plus traditionnel, plus conservateur que Python, et ressemble à certains des bons vieux
langages dérivés du langage de programmation C classique.
Ces deux versions de Python ne sont pas compatibles entre elles. Les scripts Python 2 ne
fonctionneront pas dans un environnement Python 3 et vice versa, donc si vous voulez que l'ancien
code Python 2 soit exécuté par un interpréteur Python 3, la seule solution possible est de le réécrire,
pas à partir de zéro, bien sûr, car de grandes parties du code peuvent rester intactes, mais vous devez
8
réviser tout le code pour trouver toutes les incompatibilités possibles. Malheureusement, ce processus
ne peut pas être entièrement automatisé.
Il est trop difficile, trop long, trop coûteux et trop risqué de migrer une ancienne application Python 2
vers une nouvelle plate-forme. Il est possible que la réécriture du code introduise de nouveaux bogues.
Il est plus facile et plus judicieux de laisser ces systèmes tranquilles et d'améliorer l'interpréteur
existant, au lieu d'essayer de travailler à l'intérieur du code source qui fonctionne déjà.
Python 3 n'est pas seulement une meilleure version de Python 2 - c'est un langage complètement
différent, bien qu'il soit très similaire à son prédécesseur. Quand on les regarde de loin, ils semblent
être les mêmes, mais quand on les regarde de près, on remarque beaucoup de différences.
Si vous modifiez une ancienne solution Python existante, il est fort probable qu'elle ait été codée en
Python 2. C'est la raison pour laquelle Python 2 est toujours utilisé. Il y a trop d'applications Python 2
existantes pour l'abandonner complètement.
Note
Si vous allez démarrer un nouveau projet Python, vous devez utiliser Python 3, et c’est la version de
Python qui sera utilisée pendant ce cours.
Il est important de se rappeler qu'il peut y avoir des différences plus ou moins importantes entre les
versions ultérieures de Python 3 (par exemple, Python 3.6 a introduit des clés de dictionnaire
ordonnées par défaut dans l'implémentation de CPython) - la bonne nouvelle, cependant, est que
toutes les nouvelles versions de Python 3 sont rétro-compatibles avec les versions précédentes de
Python 3. Chaque fois que cela sera significatif et important, nous essaierons toujours de mettre en
évidence ces différences dans le cours.
Tous les échantillons de code que vous trouverez dans le cours ont été testés sur Python 3.4, Python
3.6 et Python 3.7.
Tout d'abord, il y a les Pythons qui sont maintenus par les personnes réunies autour de la PSF (Python
Software Foundation), une communauté qui vise à développer, améliorer, étendre et populariser
Python et son environnement. Le président de la PSF est Guido von Rossum lui-même, et pour cette
raison, ces Pythons sont appelés canoniques. Ils sont également considérés comme des Pythons de
référence, car toute autre implémentation du langage doit suivre tous les standards établis par la PSF.
Guido van Rossum a utilisé le langage de programmation "C" pour mettre en œuvre la toute première
version de son langage et cette décision est toujours en vigueur. Tous les Pythons provenant de la FSP
sont écrits en langage "C". Cette approche a de nombreuses raisons et de nombreuses conséquences.
L'une d'entre elles (probablement la plus importante) est que grâce à elle, Python peut être facilement
porté et migré vers toutes les plates-formes avec la possibilité de compiler et d'exécuter des
programmes en langage "C" (pratiquement toutes les plates-formes possèdent cette caractéristique,
ce qui ouvre de nombreuses possibilités d'expansion pour Python).
9
C'est pourquoi la mise en œuvre du PSF est souvent appelée CPython. C'est le Python le plus influent
parmi tous les Pythons du monde.
Cython
Un autre membre de la famille Python est Cython.
Cython est l'une des nombreuses solutions possibles au plus douloureux des traits de caractère de
Python - le manque d'efficacité. Les calculs mathématiques importants et complexes peuvent être
facilement codés en Python (beaucoup plus facilement qu'en "C" ou tout autre langage traditionnel),
mais l'exécution du code qui en résulte peut-être extrêmement longue.
Comment concilier ces deux contradictions ? Une solution consiste à écrire vos idées mathématiques
en Python, et lorsque vous êtes absolument sûr que votre code est correct et produit des résultats
valables, vous pouvez le traduire en "C". Il est certain que le "C" fonctionnera beaucoup plus vite que
le Python pur.
C'est ce que Cython est censé faire - traduire automatiquement le code Python (propre et clair, mais
pas trop rapide) en code "C" (compliqué et bavard, mais agile).
Jython
Une autre version de Python s'appelle Jython.
"J" est pour "Java". Imaginez un Python écrit en Java au lieu de C. C'est utile, par exemple, si vous
développez des systèmes complexes et de grande taille écrits entièrement en Java et que vous
souhaitez y ajouter une certaine flexibilité Python. Le CPython traditionnel peut être difficile à intégrer
dans un tel environnement, car C et Java vivent dans des mondes complètement différents et ne
partagent pas beaucoup d'idées communes.
Jython peut communiquer plus efficacement avec l'infrastructure Java existante. C'est pourquoi
certains projets le trouvent utilisable et nécessaire.
Note : l'implémentation actuelle de Jython suit les standards de Python 2. Il n'y a pas de Jython
conforme à Python 3, jusqu'à présent.
C'est un logo du PyPy - un python dans un python. En d'autres termes, il représente un environnement
Python écrit dans un langage similaire au Python appelé RPython (Restricted Python). Il s'agit en fait
d'un sous-ensemble de Python. Le code source de PyPy n'est pas exécuté à la manière de
10
l'interprétation, mais est plutôt traduit dans le langage de programmation C et ensuite exécuté
séparément.
C'est utile car si vous voulez tester une nouvelle fonctionnalité qui pourrait être (mais ne doit pas être)
introduite dans l'implémentation Python courante, il est plus facile de la vérifier avec PyPy qu'avec
CPython. C'est pourquoi PyPy est plutôt un outil pour les personnes qui ne développent Python que
pour le reste des utilisateurs.
Cela ne rend pas PyPy moins important ou moins sérieux que CPython, bien sûr.
Il y a beaucoup plus de pythons différents dans le monde. Vous les trouverez si vous cherchez, mais ce
cours s’intéressera au CPython.
Les utilisateurs de Linux ont très probablement déjà installé Python - c'est le scénario le plus
probable, car l'infrastructure de Python est intensivement utilisée par de nombreux composants du
système d'exploitation Linux.
Par exemple, certains distributeurs peuvent coupler leurs outils spécifiques avec le système et
beaucoup de ces outils, comme les gestionnaires de paquets, sont souvent écrits en Python. Certaines
parties des environnements graphiques disponibles dans le monde Linux peuvent également utiliser
Python.
python3
Si Python 3 est absent, reportez-vous à votre documentation Linux afin de savoir comment utiliser
votre gestionnaire de paquets pour télécharger et installer un nouveau paquet - celui dont vous avez
besoin s'appelle python3 ou son nom commence par cela.
Et c’est parti !
11
Comme le navigateur indique au site de téléchargement que vous êtes entré dans le système
d'exploitation que vous utilisez, la seule chose que vous devez faire est de cliquer sur la version Python
appropriée que vous souhaitez.
Dans ce cas, sélectionnez Python 3. Le site vous propose toujours la dernière version.
Si vous êtes un utilisateur de Windows, il vous suffit de cliquer sur le bouton afin
de télécharger le fichier « python-3.8.2.exe » sur le disque dur de votre ordinateur (généralement se
fichier est placé dans le dossier Téléchargement ou Downloads).
Lancez ensuite le fichier « python-3.8.2.exe » téléchargé et suivez intuitivement toutes les étapes
d’installation…Laissez les paramètres par défaut proposés par l'installateur pour l'instant, à une
exception près - regardez la case à cocher nommée Add Python 3.x to PATH et cochez-la. Cela facilitera
les choses.
Ce sera une procédure très simple, mais elle devrait suffire à vous convaincre que l'environnement
Python est complet et fonctionnel.
Pour commencer votre travail, vous avez besoin des outils suivants :
Un éditeur qui vous aidera à écrire le code (il doit présenter certaines caractéristiques
particulières, non disponibles dans les outils simples) ; cet éditeur dédié vous donnera plus
que l'équipement standard du système d'exploitation (bloc-notes ou autres…).
Une console dans laquelle vous pouvez lancer votre code nouvellement écrit et l'arrêter de
force lorsqu'il devient incontrôlable.
Un outil appelé débogueur, capable de lancer votre code étape par étape et vous permettant
de l'inspecter à chaque instant de son exécution.
Outre ses nombreux composants utiles, l'installation standard de Python 3 contient une application
très simple mais extrêmement utile appelée IDLE.
IDLE est un acronyme : « Integrated Development and Learning Environment », ce qui veut dire un
environnement de développement intégré de Python qui est une interface utilisateur permettant
d’éditer votre code, l’exécuter et faire pleins de choses utiles que l’on verra par la suite. Cette
application ressemble à Eclipse de Java, Netbeans de Java également, Dev C++ du langage C++, Visual
Studio pour C#...
Naviguez dans les menus de votre OS (Windows par exemple), trouvez IDLE quelque part sous Python
3.x et lancez-le :
12
Voici ce que vous devriez voir :
Une autre manière de faire aurait été de travailler directement avec la console, pour cela il suffit de
taper le nom du programme « python 3.8 » au niveau de la zone de recherche de Windows :
13
Comment écrire et gérer votre tout premier programme ?
Il est maintenant temps d'écrire et d'exécuter votre premier programme Python 3. Ce sera très simple,
pour l'instant.
La première étape consiste à créer un nouveau fichier source et à le remplir de code. Cliquez sur Fichier
dans le menu de l'IDLE et choisissez les options « File » « New File » :
Pour obtenir :
14
Comme vous pouvez le voir, IDLE vous ouvre une nouvelle fenêtre. Vous pouvez l'utiliser pour écrire
et modifier votre code.
C'est la fenêtre de l'éditeur. Son seul but est d'être un lieu de travail dans lequel votre code source est
traité. Ne confondez pas la fenêtre de l'éditeur avec la fenêtre de l'interpréteur de commandes. Elles
remplissent différentes fonctions.
La fenêtre de l'éditeur est actuellement sans titre, mais il est bon de commencer le travail en nommant
le fichier source.
Cliquez sur File (dans la nouvelle fenêtre), puis sur Save as..., sélectionnez un dossier pour le nouveau
fichier (le bureau est un bon endroit pour vos premières tentatives de programmation) et choisissez
un nom pour le nouveau fichier. Pour ma part j’ai nommé mon fichier source « Exemple1 » que j’ai
placé dans le bureau, dans le dossier « Labs Formation Python\Module1 » :
Au passage notre code source s’appelle « Exemple1.py », constatez que le suffixe des code source
python est « py ».
Remarque : ne définissez aucune extension pour le nom du fichier que vous allez utiliser. Python a
besoin que ses fichiers portent l'extension .py, vous devez donc vous fier aux paramètres par défaut
de la fenêtre de dialogue. L'utilisation de l'extension .py standard permet au système d'exploitation
d'ouvrir correctement ces fichiers.
Mettez maintenant une seule ligne dans votre fenêtre d'éditeur nouvellement ouverte et nommée
« Exemple1 ».
print("Ramadan Moubarak...")
Nous n'allons pas expliquer la signification du programme pour l'instant. Vous trouverez une discussion
détaillée dans le chapitre suivant, mais vous vous doutez que cette instruction aura pour effet
d’afficher quelque chose…
Regardez de plus près les guillemets. Il s'agit de la forme la plus simple de guillemets (neutre, droit,
muet, etc.) communément utilisée dans les fichiers sources. N'essayez pas d'utiliser des guillemets
typographiques (courbes, bouclés, intelligents, etc.), utilisés par les processeurs de texte avancés, car
Python ne les accepte pas.
15
Si tout se passe bien et qu'il n'y a pas d'erreurs dans le code, la fenêtre de la console vous montrera
les effets causés par l'exécution du programme.
Pour cela, enregistrer d’abord les modifications dans le fichier, ensuite choisissez le menu « Run »
« Run Module », ou plus simplement appuyez sur la touche F5 du clavier :
Cliquez sur « File » « Open », pointez sur le fichier que vous avez sauvegardé précédemment et
laissez IDLE le lire.
Comme vous pouvez le voir, IDLE est capable de sauvegarder votre code et de le récupérer lorsque
vous en avez besoin à nouveau.
16
Premièrement, supprimer la parenthèse fermante :
print("Ramadan Moubarak..."
Ensuite, entrez à nouveau entre parenthèses. Votre constaterez qu’il mettra le texte en grisé.
Chaque fois que vous mettez la parenthèse fermante dans votre programme, IDLE affichera la partie
du texte limitée par une paire de parenthèses correspondantes. Cela vous aide à vous souvenir de les
placer par paires.
Supprimer à nouveau la parenthèse fermante. Le code devient erroné, il contient maintenant une
erreur de syntaxe et IDLE ne permettra pas de l’exécuter.
Essayez d’exécuter le programme. IDLE vous rappellera de sauvegarder le fichier modifié. Suivez les
instructions.
Surveillez attentivement toutes les fenêtres. Une nouvelle fenêtre apparaît - elle indique que
l'interpréteur a rencontré un EOF (endof-file) bien que (à son avis) le code devrait contenir un peu plus
de texte.
print("Ramadan Moubarak...")
Essayez maintenant d’insérer une autre erreur dans le code. Retirez une lettre du mot « print », par
exemple la lettre « t ». Exécutez le code en appuyant sur F5. Comme vous pouvez le voir, Python n'est
pas capable de reconnaître l'erreur.
Vous avez peut-être remarqué que le message d'erreur généré pour l'erreur précédente est très
différent du premier :
17
En effet, la nature de l'erreur est différente et l'erreur est découverte à un stade différent de
l'interprétation.
La fenêtre de l'éditeur ne fournira aucune information utile concernant l'erreur, mais les celle de la
console le pourrait.
Le traceback (qui est le chemin que le code parcourt à travers différentes parties du
programme - vous pouvez l'ignorer pour l'instant, car il est vide dans un code aussi simple) ;
L’emplacement de l'erreur (le nom du fichier contenant l'erreur, le numéro de ligne et le nom
du module) ; remarque : le numéro peut être trompeur, car Python indique généralement
l'endroit où il remarque pour la première fois les effets de l'erreur, pas nécessairement l'erreur
elle-même ;
Le contenu de la ligne erronée ; note : la fenêtre de l'éditeur d'IDLE n'affiche pas les numéros
de ligne, mais elle affiche l'emplacement actuel du curseur dans le coin inférieur droit ; utilisez-
la pour localiser la ligne erronée dans un long code source ;
Le nom de l'erreur et une brève explication : « NameError: name 'prin' is not defined »
Pour tester ou expérimenter votre code, vous pouvez utiliser un environnement de programmation en
ligne dédié et interactif.
Il s'agit d'un outil intégré dans le cours, qui peut être utilisé comme une sandbox Python basée sur un
navigateur qui vous permet de tester le code discuté tout au long du cours, ainsi qu'un interpréteur
qui vous permet de lancer, d'effectuer et de tester les exercices des labs spécifiquement conçus pour
ce cours.
18
La fenêtre de l'éditeur, qui vous permet de saisir votre code,
La fenêtre Console, qui vous permet de voir le résultat de l’exécution de vos programmes,
Un outil appelé la barre des boutons d'action, qui vous permet d'exécuter votre code, de
rafraîchir la fenêtre de l'éditeur, de télécharger votre programme sous forme de fichier .py, de
télécharger un fichier .py qui sera affiché dans l'éditeur, de signaler un bug (au cas où vous
relèveriez une erreur, faites-le nous savoir !).
Et le bouton "Settings", qui vous permet de régler les paramètres d'affichage et de passer d'un
environnement Python/C/C++ à l'autre.
print("Hello!")
print("Welcome to Python Essentials!")
print("THIS IS SANDBOX MODE.")
...puis cliquez sur le bouton Sandbox (Bouton à droite de votre page de cours NetAcad)
pour entrer en mode Sandbox, collez le code dans la fenêtre de l'éditeur, et cliquez sur le bouton Run
Pour revenir au cours de NetAcad, cliquez sur le bouton dans le coin supérieur droit
de l'interface du Sandbox.
Essayez maintenant de vous familiariser avec l’interface Sandbox, elles est très intuitive.
19
20
Module 2 : Types de données, variables, opérations d'entrée-sortie de base,
opérateurs de base
Dans ce module, vous en apprendrez davantage sur :
La fonction print()
Syntaxe : print(argument1, argument2,…). Plus généralement function_name(argument).
C’est une fonction intégrée très importante de Python, elle permet d’afficher, au niveau de la console,
les valeurs fournies en arguments (càd entre parenthèses et séparés par des virgules « , »), et à
l’affichage ces valeurs sont séparées par défaut par des espaces " " et à la fin, la fonction termine le
travail par un saut à la ligne.
Exemple :
Nous allons afficher que des chaînes de caractères pour le moment, nous verrons plus tard comment
afficher des variables.
print("bonjour")
print("Rahmani","Abdelhak","Formateur animateur")
Comme on vient de le voir, à l’affichage des arguments de la fonction print(), ces derniers sont séparés
par des espaces, on peut alors remplacer l’espace par n’importe quel autre caractère grâce à l’option
(ou mot clé d’argument) « sep ».
Exemple :
La fonction print() provoque par défaut un retour à la ligne après affichage des arguments, mais on
peut modifier cela grâce à l’option « end ».
Exemples :
21
1)
print("Bonjour", end=",")
print("Rahmani","Abdelhak","Formateur animateur", sep="-*-")
2) On peut coupler les 2 options « sep » et « end » dans une même fonction print() :
La fonction print() peut n’avoir aucun argument, càd que l’instruction print() est correcte
syntaxiquement et elle provoque naturellement un saut de ligne.
Exemple :
Faisons un constat important à ce niveau, c’est que le langage Python n’accepte qu’une seule
instruction par ligne, il est vrai qu’on peut écrire plus d’une instruction par ligne en les séparant par
« ; » mais il est préférable de s’en tenir à une instruction par ligne.
print("Bonjour")
print()
print("Comment allez-vous?")
On constate dans ce dernier exemple qu’un retour à la ligne supplémentaire a été rajouté en plus de
celui provoqué par le premier print("Bonjour").
Il est tout à fait possible d’insérer des retours à la ligne au niveau des arguments d’une même fonction
print() à l’aide de \n (le caractère « \ » s’appelle le caractère d’échappement ou « escape » qui signifie,
si j’ose m’exprimer ainsi, on s’échappe un petit moment pour faire autre chose (ici retour à la ligne)
et on revient…).
Exemple :
print("Bonjour\nJe m'appelle Rahmani Abdelhak\nJe suis formateur animateur")
22
Si on souhaite maintenant, pour une raison ou une autre afficher le caractère d’échappement « \ » lui-
même, alors il suffit de le dédoubler :
Exemple :
LAB
print("2")
print(2)
On constate qu’au niveau de l’affichage en console les 2 print() affichent le même résultat « 2 », mais
en fait les manières de stocker en mémoire par la machine et manipuler ces 2 données sont
complétement différentes.
Dans le second cas, il s’agit du nombre « 2 » qui a une toute autre signification.
Pour ce qui est des nombres manipulés par l’ordinateur, ils sont de 2 types :
23
L’ordinateur stocke différemment ces 2 types de nombres en mémoire.
Prenons l’exemple du nombre « onze millions cent onze mille cent onze », à la main on peut l’écrire :
print(11111111)
print(11_111_111)
Et les nombres négatifs, ils sont codés simplement en rajoutant le signe « - » à gauche :
-11111111
On sait tous que tous nombre décimal (d’ailleurs décimal fait référence au nombre 10) est représenté
uniquement par les 10 chiffres 0, 1, 2, …9, on parle alors de représentation décimale des nombres.
Cette représentation des nombres n’est pas adéquate avec l’ordinateur qui lui utilise, pour les raisons
citées plus haut, la représentation binaire (référence au chiffre 2) mais aussi les représentations octale
(référence à 8) et hexadécimale (référence à 16).
De la même manière que la représentation décimale (base 10), on peut écrire les nombres avec les
autres représentations binaire, octale et hexadécimale.
Représentation binaire (base 2) : Les nombres ne peuvent être représentés qu’avec les 2 chiffres 0 et
1, (rappelez-vous pour la base 10, on avait 10 chiffres : 0 à 9).
Représentation octale (base 8) : Les nombres ne peuvent être représentés qu’avec les 8 chiffres 0 à 7
Représentation hexadécimale (base 16) : Les nombres ne peuvent être représentés qu’avec les 16
symboles (0 à 9 ensuite A pour 10, B pour 11, C pour 12, D pour 13, E pour 14 et F pour 15), c’est tout
à fait normal de ne représenter 10 à 15 par un seul symbole sinon ça représenterait d’autres nombres
et ce serait faux !
24
Le langage python reconnaît bien évidement ces 3 représentations, ainsi pour représenter un nombre
en binaire, il suffit de le faire précéder par 0b (zéro b), par exemple : 0b1101
Pour représenter un nombre en octale, il faut le préfixer par 0o (Zéro o), par exemple : 0o227
Pour représenter un nombre en hexadécimale, il faut le préfixer par 0x (Zéro x), par exemple : 0xA2C
Voici ce que cela donne avec la fonction print() (Constatez que l’on retrouve les mêmes résultats que
plus haut) :
print(0b1101)
print(0o227)
print(0xA2C)
Important : le nombre 4 tout court est considéré comme entier par Python, en revanche 4.0 est
considéré comme un float.
Il faut préciser qu’un « float » se note 2.5 (point) et non 2,5 (la virgule n’est pas admise, elle sert à
autre chose dans Python !).
print(2.5)
print(2,5)
Dans ce 2ème exemple la virgule « , » signifie que la fonction print() a 2 arguments qui sont les 2
nombres : 2 et 5, d’où l’affichage :
25
Pour Python le nombre décimal 0.4 peut être écrit .4 (en enlevant le zéro), mais ceci ne marche bien
évidemment que pour le zéro :
print(.4)
De même le nombre 4.0 peut être écrit comme 4. (en enlevant le zéro) et cela ne changera ni son type
(float) ni sa valeur :
print(4.)
Un autre moyen d’utiliser les « float » est la lettre « e » comme exposant. Ce type de notation est
particulièrement intéressant pour les très grands ou très petits nombres réels pour lesquelles la
notation scientifique (avec exposant) s’avère intéressante.
En Python on l’écrit comme 3e8 ou 3E8 (il est nécessaire que l’exposant soit un nombre entier !)
print(3e8)
print(3E8)
Par exemple la constante physique h = 6.62607 x 10-34 appelée constante de Planck s’écrit :
print(6.62607E-34)
26
Remarque : le fait que vous ayez choisi l'une des formes possibles de codage des floats ne signifie pas
que Python la présentera de la même manière, il peut parfois choisir une notation différente de la
vôtre.
Par exemple, disons que vous avez décidé d'utiliser le float suivant au sens littéral :
print(0.0000000000000000000001)
Regarder le résultat de l’affichage en console :
Par exemple le texte "Je suis une chaîne de caractères" est justement une chaine de caractères (string).
Donc en Python tout ce qui est mis entre double quotes (guillemets) représente une chaîne de
caractères.
Se pose alors le problème de l’affichage des « guillemets » eux-mêmes, comment faire alors ?
Exemple : On souhaite afficher le texte tel quel avec les "" : I like "Monty Python"
La 1ère consiste à utiliser le fameux caractère d’échappement « \ » avant chacun des guillemets :
La 2ème solution consiste à utiliser l’apostrophe (simple quote) au lieu des doubles quotes pour
spécifier une chaine de caractères. Simple quote ou double quote pour les string c’est pareil !
Mais si vous commencez une chaîne avec une apostrophe, vous devez la terminer avec une
apostrophe, il faut être cohérent. Dans ce cas, pas besoin du caractère d’échappement « \ » :
27
De la même manière que pour les strings contenant des doubles quotes, pour afficher les textes qui
contiennent des simples quotes c’est le même principe que précédemment :
Exemple :
2 solutions :
Ce type est très important en Python et aussi dans tous les autres langages de programmation.
Pour illustrer ce type, on va considérer l’expression suivante : « 10 est plus grand que 5 »
Cette affirmation est vraie donc on lui attribuer la valeur booléenne « True ».
En revanche, l’expression : « 10 est plus petit que 5 » est fausse et on lui attribue la valeur « False ».
Le nom booléen vient de George Boole (1815-1864), l'auteur de l'ouvrage fondamental, The Laws of
Thought, qui contient la définition de l'algèbre booléenne - une partie de l'algèbre qui n'utilise que
deux valeurs distinctes : Vrai et Faux, désignées par 1 et 0. C’est cette même algèbre qui représente le
fondement même de l’informatique toute entière.
Vous n'obtiendrez jamais une réponse du genre : Je ne sais pas ou Probablement oui, mais je n'en suis
pas sûr.
Exemples :
28
print(True > False)
print(False > True)
Dans le 1er cas Python affiche « True » et dans le second il affiche « False » :
print(10 > 5)
print(10 < 5)
Là encore la 1ère expression est vraie donc affichage de « True » et la 2ème est fausse donc affichage de
« False » :
LAB
Ecrire un programme Python permettant d’afficher les textes suivants tels quels :
"I'm"
""learning""
"""Python"""
Réponse :
print("I'm")
print('"Learning"')
print("\"Learning\"")
print('"""Python"""')
Exercices
Exercice 1
Exercice 2
29
Quels sont les types des littéraux suivants ?
"1.5", 2.0, 528, False
Le 1er est string, le 2ème est numérique (float), le 3ème est numérique (interger) et le dernier est
booléen.
Exercice 3
print(2 + 2)
print(2 - 2)
print(2 * 2)
print(2 / 2)
Opérateurs de base
Comme tout langage de programmation qui se respecte, Python reconnaît les opérateurs
arithmétiques les plus reconnus :
+ addition , - soustraction , * multiplication , / division , // division entière , %
reste de la division euclidienne , ** exposant
Lorsqu’on regroupe des données et des opérateurs cela forme des expressions.
Opérateur d’exponentiation **
Le signe ** (double étoile) est un opérateur d'exponentiation (puissance). Son argument de gauche
est la base, son argument de droite, l'exposant : 23 s’écrit 2 ** 3 en Python.
print(2 ** 3)
print(2 ** 3.)
print(2. ** 3)
print(2. ** 3.)
30
D’où : lorsque les deux arguments de l’opérateur « ** » sont des entiers, le résultat est également un
entier ; lorsqu'au moins un des arguments est un float, le résultat est également un float.
Opérateur de multiplication *
print(2 * 3)
print(2 * 3.)
print(2. * 3)
print(2. * 3.)
Son comportement est similaire à l’opérateur d’exponentiation « ** »
Opérateur de division /
6 / 3 – 6 : dividende et 3 : diviseur
print(6 / 3)
print(6 / 3.)
print(6. / 3)
print(6. / 3.)
Justement, lorsqu’on souhaite que le résultat d’une division soit entier, on fait appel à :
print(-6 // 4)
print(6. // -4)
On pourrait croire que -6 // 4 = -1 (car -6 / 4 = -1.5), mais non, -6 // 4 = -2 !
31
Le résultat de la division des nombres entiers est toujours arrondi à la valeur entière la plus proche qui
est inférieure au résultat réel (non arrondi).
C'est très important : l'arrondi se fait toujours sur le nombre entier le plus petit.
print(14 % 4)
print(12 % 4.5)
Opérateur d’addition +
print(-4 + 4)
print(-4. + 8)
print(-4 - 4)
print(4. - 8)
print(-1.1)
print(+2)
32
print(2 + 3 * 5)
On constate que le résultat est 17, puisqu’en l’absence de parenthèses, la multiplication est prioritaire
par rapport à l’addition.
print(9 % 6 % 2)
print(2 ** 2 ** 3)
print(2 * 3 % 5)
33
En effet, * est prioritaire sur %, donc 2 * 3 = 6 % 5 = 1
Et non pas, 3 % 5 = 3 * 2 = 6 !
Opérateurs et parenthèses
Python permet bien évidement l’utilisation des parenthèses et les sous-expressions entre parenthèses
sont prioritaires.
Exercices
Exercice 1
Réponse :
16 8.0 8
Exercise 2
Réponse :
-0.5 0.5 0 -1
Exercise 3
Réponse :
-2 2 512
Les variables
Avec Python on est capable d’encoder des valeurs littéraux contenant des valeurs numériques et
textuelles sur lesquelles on peut effectuer des opérations arithmétiques.
34
Mais il est tout à fait normal de se demander comment stocker les résultats de ces opérations, afin de
les utiliser dans d'autres opérations…Comment sauvegarder les résultats intermédiaires, et les utiliser
à nouveau pour en produire d'autres ? La solution se trouve dans la notion de variable.
Une variable est un espace mémoire (une sorte de boîte) dans lequel il est possible de mettre
une valeur. Par exemple, x = 1, la variable x prend la valeur 1, on parle alors de l’affectation ou
l’assignation de la valeur 1 à la variable x.
Un nom ;
Une valeur (le contenu du conteneur).
Il est important de savoir que les variables n'apparaissent pas automatiquement dans un programme.
En tant que développeur, vous devez décider du nombre et du type de variables à utiliser dans vos
programmes. Vous devez également les nommer en respectant quelques règles strictes :
Le nom d’une variable doit être composé de lettres majuscules ou minuscules, de chiffres et
du caractère _ (souligné ou tiret du 8) ;
Le nom d’une variable doit commencer par une lettre ;
Le caractère de soulignement est une lettre ;
Les lettres majuscules et minuscules sont traitées différemment, Python est sensible à la casse
(un peu différemment que dans le monde réel - Alice et ALICE sont les mêmes prénoms, mais
en Python, ce sont deux noms de variables différents, et par conséquent, deux variables
différentes) ;
Le nom de la variable ne doit pas être un des mots réservés de Python (les mots-clés : print, if,
else, for, while…).
Python n'impose pas de restrictions sur la longueur des noms de variables, mais cela ne signifie pas
qu'un nom de variable long est toujours meilleur qu'un nom court.
10t (Ne commence pas par une lettre), Exchange Rate (contient un espace)
NOTE
35
Le PEP 8 -- Style Guide for Python Code (https://www.python.org/dev/peps/pep-0008/)
recommande la convention de dénomination suivante pour les variables et les fonctions en Python :
var = 1
print(var)
Exemples :
1-
var = 1
account_balance = 1000.0
client_name = 'John Doe'
print(var, account_balance, client_name)
print(var)
2-
var = 1
print(Var)
Cet exemple va entrainer une erreur car Python est sensible à la casse, en effet, on déclare la variable
var, on lui affecte la valeur 1 et on imprime Var qui n’existe pas (à cause du « V » majuscule !) :
NameError: name 'Var' is not defined
3-
var = "3.7.1"
print("Python version: " + var)
print("Python version:",var)
36
Exemples :
1-
var = 1
print(var)
var = var + 1
print(var)
2-
var = 100
var = 200 + 300
print(var)
3-
Le théorème de Pythagore dit que dans un triangle rectangle le carré de l’hypoténuse vaut la somme
des carrés des 2 autres côtés :
a = 3
b = 4
hypo = (a ** 2 + b ** 2) ** 0.5
print(hypo)
LAB
Il était une fois à Appleland, Jean avait trois pommes, Marie cinq pommes et Adam six pommes. Ils
étaient tous très heureux et ont vécu longtemps. Fin de l'histoire.
37
d'imprimer ensemble une chaîne et un nombre entier sur une ligne, par exemple, "Total
number of apples :" et totalApples.
john = 3
mary = 5
adam = 6
print(john,mary,adam, sep = ",")
total_pommes = john + mary + adam
print("Le nombre total de pommes :",total_pommes)
Opérateurs de raccourcis
Ces opérateurs sont pratiques et ils facilitent la vie au développeur. La règle est la suivante :
Exemples :
x = x * 2 x *= 2
x = x + 1 x += 1
i = i + 2 * j i += 2 * j
i = i / 2 i /= 2
i = i % 10 i %= 10
i = i - (j * 2) i -= (j * 2)
i = i ** 2 i **= 2
LAB
Sachant que 1Mile est égal à environ des 1.61 kilomètres, écrivez un programme Python qui convertit :
Milles en kilomètres ;
Kilomètres en milles.
38
On constate qu’il y a une function intéressante à l’intérieur du print(), c’est la fonction d’arrondi
« round ». Par exemple, round(miles_to_kilometers, 2) permet d’arrondir son argument à 2 chiffres
après la virgule.
LAB
Ecrivez un programme en Python qui lit une valeur réelle, la place dans une variable nommée x et
calcule et affiche la valeur d'une variable nommée y, sachant que :
y = 3x3 - 2x2 + 3x – 1
Exercices :
Exercice 1
var = 2
var = 3
print(var)
Exercice 2
Quelles sont les déclarations de variables non permises parmi les suivantes ?
my_var
m
101
averylongvariablename
m101
m 101
Del
del
101 (commence par un chiffre) – m 101 (présence de l’espace) – del (mot clé Python)
39
Exercice 3
a = '1'
b = "1"
print(a + b)
Comme on peut le constater, il s’agit d’une concaténation de caractères et non pas une addition de
nombres entiers.
Exercice 4
a = 6
b = 3
a /= 2 * b
print(a)
Il suffit pour cela de les faire précéder par « # ». Chaque ligne de commentaire doit être précédée par
«#»!
Exemple :
Les 2 premières lignes du programme précédents sont des commentaires et elles ne seront pas
considérées lors de l’exécution.
Les bons développeurs décrivent chaque élément de code important et prennent le soin de le
commenter, par exemple, expliquant le rôle des variables ; même s'il faut préciser que la meilleure
façon de commenter les variables est de les nommer de manière non ambiguë.
40
Les commentaires peuvent aussi être utiles pour marquer un morceau de code qui n'est actuellement
pas nécessaire pour une raison quelconque. Regardez l'exemple ci-dessous, si vous dé-commentez la
ligne en surbrillance, cela affectera la sortie du code :
Cela se fait souvent lors du test d'un programme, afin d'isoler l'endroit où une erreur peut être cachée.
Pour insérer des commentaires sur plusieurs lignes, soit on place le « # » devant chaque ligne de
commentaire, soit on utilise 3 fois les guillemets « """ …. """ » :
Exercice 1
# print("String #1")
print("String #2")
Exercice 2
# This is
a multiline
comment. #
print("Hello!")
Erreur, en effet, les 2ème et 3ème lignes ne sont pas des commentaires !
SyntaxError: invalid syntax
La fonction input()
41
La fonction input() est le reflet miroir de la fonction printf(), en effet, si cette dernière renvoie des
données à la console, la première permet des données entrées par l’utilisateur, ce qui va permettre de
l’interactivité et le dialogue entre l’utilisateur et la machine.
Exemple :
L’instruction quelque_chose = inupt() permet d’affecter à la variable quelque_chose ce qui a été saisi
par l’utilisateur au niveau de la console. D’ailleurs, à l’exécution du programme, la fonction input() met
l’ordinateur en attente (curseur clignotant en console) que l’utilisateur saisisse quelque chose au
clavier et valide sa saisie à l’aide de la touche « entrée » avant de passer à l’instruction suivante !
La fonction input() peut avoir un argument, ce qui évitera de la faire précéder par un print() :
Exemple :
Remarque importante :
Le résultat de la fonction input() est une chaîne contenant tous les caractères que l'utilisateur entre
depuis le clavier. Ce n'est pas un entier ou un réel ! en ce sens qu’on ne peut pas l’utiliser comme
argument d’opérations arithmétiques. En revanche, on peut toujours utiliser le signe « + » de
concaténation des chaînes ou même de la duplication à l’aide du « * » :
42
quleque_chose = input("Entrer un nombre : ")
autre_chose = quleque_chose ** 2.0
print(quleque_chose, "to the power of 2 is", autre_chose)
Mais attention, le « 2 » saisi au clavier est considéré comme un caractère et non pas un nombre, et le
résultat de sa multiplication par 2 donne une duplication « 22 » et non pas l’opération arithmétique
de la multiplication : 2 x 2 = 4
Justement, la solution à ce genre de situation, lorsqu’on souhaite saisir des nombres au clavier est
donnée par les fonctions int() et float() qui permettent de convertir des string (passés en argument
entre parenthèses) en respectivement des entiers ou des réels :
# Conversion de type
n = int(input("Saisir un nombre entier : "))
p = n ** 3
print(n, "à la puissance 3 est", p)
Exemple :
Ecrire un programme Python qui demande à l’utilisateur de saisir les mesures des 2 côtés d’un triangle
rectangle et qui calcule et affiche la mesure de l’hypoténuse.
43
leg_b = float(input("Saisir la mesure du 2ème côté : "))
hypo = (leg_a**2 + leg_b**2) ** .5
print("La mesure de l'hypoténuse est : ", hypo)
L’opérateur « + » appliqué à des chaînes de caractères permet de les concaténer. Mais attention,
contrairement à l’addition des nombres, cet opérateur n’est pas commutatif pour les chaînes, c’est-à-
dire que "ab" + "ba" = "abba" est différent de "ba" + "ab" = "baab" !
Exemple :
Duplication
Exemple :
#Duplication de chaînes
print("Ali" * 3)
print(3 * "Mohamed")
print(5 * "2")
#A ne pas confondre avec :
print(5 * 2)
44
Conversion de types nombres chaînes de caractères
Nous avons vu que les fonctions int() et float() convertissent des string en nombres. De la même
manière, la fonction str() fait le travail inverse en convertissant des nombres en chaînes.
Exemple :
a = 5
b = 3
print(a * b)
c = str(b)
print(a * c)
LAB
Le travail consiste à écrire un code Python qui permet d'évaluer l'expression suivante :
Sachant que la variable x est une valeur réelle saisie par l’utilisateur et le résultat doit être attribué
à une variable y. Soyez prudent - surveillez les opérateurs et gardez à l'esprit leurs priorités. N'hésitez
pas à utiliser autant de parenthèses que nécessaire.
Vous pouvez utiliser des variables supplémentaires pour raccourcir l'expression (mais ce n'est pas
nécessaire). Testez soigneusement votre code.
Réponse :
45
Exercice 1
Exercice 2
Oui en effet, on sait très bien que le type retourné par la fonction input() est string !
46
Module 3 Valeurs booléennes, structures conditionnelles, structures
itératives, listes, opérations logiques
Valeurs booléennes ;
Instructions if-elif-else ;
Boucles while et for ;
Contrôle de flux ;
Opérations logiques ;
Listes et tableaux.
Questions et réponses
Un ordinateur exécute le programme et fournit les réponses. Le programme doit pouvoir réagir en
fonction des réponses reçues.
Vous n'obtiendrez jamais de réponse comme Laissez-moi penser ..., je ne sais pas, ou probablement
oui, mais je ne sais pas avec certitude.
Pour poser des questions, Python utilise un ensemble d'opérateurs très spéciaux. Passons en revue les
uns après les autres, illustrant leurs effets sur quelques exemples simples.
L’opérateur « == » compare l’égalité entre 2 entités, à ne pas confondre avec l’opérateur d’affectation
déjà vu plus haut. Le résultat de l’expression de comparaison est « True » s’il y a égalité et « False »
sinon.
Exemples :
1-
a = 2
b = 2
print(a == b)
2-
a = 2
b = 2.0
47
print(a == b)
3-
a = "Bonjour"
b = "Bonsoir"
print(a == b)
A suivre…
48