Vous êtes sur la page 1sur 48

Programming Essentials in Python

Abdelhak Rahmani
Formateur animateur au CDC Digital

1
Module 1 : Introduction à Python et à la programmation informatique
Dans ce module, vous en apprendrez davantage sur :

 Les bases de la programmation informatique ;


 La mise en place de votre environnement de programmation ;
 Compilation ou interprétation ;
 Introduction à Python.

Comment fonctionne un programme informatique ?


Ce cours a pour but de vous montrer ce qu'est le langage Python et à quoi il sert. Commençons par les
bases absolues.

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 :

 Accepter un nombre représentant la distance ;


 Accepter un nombre représentant la durée du voyage ;
 Diviser la première valeur par la seconde et stocker le résultat dans la mémoire ;
 Afficher le résultat (représentant la vitesse moyenne) dans un format lisible.

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.

Le langage est le mot clé.

Langages naturels vs. Langages de programmation


Une langue est un moyen (et un outil) pour exprimer et enregistrer des pensées. Il existe de
nombreuses langues tout autour de nous. Certaines d'entre elles ne nécessitent ni parler ni écrire,
comme le langage corporel ; il est possible d'exprimer ses sentiments les plus profonds de manière
très précise sans dire un mot.

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.

Un ordinateur, même le plus sophistiqué techniquement, est dépourvu de toute intelligence. On


pourrait dire qu'il est comme un chien bien entraîné - il ne répond qu'à un ensemble prédéterminé
d'ordres connus.

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.

Remarque : les langages machines sont développés par l'homme.

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.

Qu'est-ce qui fait un langage ?


On peut dire que chaque langue (qu'elle soit mécanique ou naturelle, peu importe) est composée des
éléments suivants :

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

Chaque langue a ses règles et celles-ci doivent être respectées ;

SEMANTIQUEMENT

Le programme doit avoir un sens.

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.

Il existe deux façons différentes de transformer un programme d'un langage de programmation de


haut niveau en langage machine :

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é ?

Que fait réellement l'interprète ?


Supposons encore une fois que vous ayez écrit un programme. Or, il existe sous la forme d'un fichier
informatique : un programme informatique est en fait un morceau de texte, de sorte que le code
source est généralement placé dans des fichiers texte. Remarque : il doit s'agir de texte pur, sans
aucune décoration comme des polices, des couleurs, des images intégrées ou d'autres supports
différents. Vous devez maintenant invoquer l'interpréteur et le laisser lire votre fichier source.

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.

Compilation vs. Interprétation - avantages et inconvénients


Compilation Interprétation
 L'exécution du code traduit est  Vous pouvez lancer le code dès que vous
généralement plus rapide ; l'avez terminé - il n'y a pas de phases de
 Seul l'utilisateur doit disposer du traduction supplémentaires ;
compilateur - l'utilisateur final peut  le code est stocké en utilisant le langage de
utiliser le code sans celui-ci ; programmation et non le langage machine
Avantages
 Le code traduit est stocké en langage - cela signifie qu'il peut être exécuté sur des
machine - comme il est très difficile à ordinateurs utilisant différents langages
comprendre, vos propres inventions et machine ; vous ne compilez pas votre code
astuces de programmation resteront séparément pour chaque architecture
probablement votre secret. différente.
 La compilation elle-même peut être un  Ne vous attendez pas à ce que
processus très long - il se peut que vous l'interprétation fasse passer votre code à
ne puissiez pas exécuter votre code grande vitesse - votre code partagera la
immédiatement après une modification ; puissance de l'ordinateur avec
Inconvénients
 Vous devez disposer d'autant de l'interpréteur, donc il ne peut pas être
compilateurs que de plates-formes vraiment rapide ;
matérielles sur lesquelles vous voulez que  Vous et l'utilisateur final devez disposer de
votre code soit exécuté. l'interpréteur pour exécuter votre code.

Qu'est-ce que tout cela signifie pour vous ?

 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.

« Guido van Rossum » inventeur du …

Qu'est-ce que Python ?


Python est un langage de programmation de haut niveau, largement utilisé, interprété et orienté objet,
avec une sémantique dynamique, utilisé pour la programmation générale.

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.

Qui a créé Python ?

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 projet de programmation de loisirs


Les circonstances dans lesquelles Python a été créé sont un peu déroutantes. Selon Guido van Rossum
:

« En décembre 1989, je cherchais un projet de programmation "hobby" qui me permettrait de


m'occuper pendant la semaine autour de Noël. Mon bureau (...) serait fermé, mais j'avais un ordinateur
à la maison, et pas grand-chose d'autre sur les bras. J'ai décidé d'écrire un interpréteur pour le nouveau
langage de script auquel j'avais pensé dernièrement : un descendant d'ABC qui ferait appel aux pirates
Unix/C. J'ai choisi Python comme titre de travail pour le projet, étant d'humeur légèrement
irrévérencieuse (et grand fan du Flying Circus de Monty Python). »

Guido van Rossum

Les objectifs de Python


En 1999, Guido van Rossum a défini ses objectifs pour Python :

 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.

Qu'est-ce qui rend Python si spécial ?


Comment se fait-il que les programmeurs, jeunes et vieux, expérimentés et novices, veuillent l'utiliser
? Comment se fait-il que de grandes entreprises aient adopté Python et mis en œuvre leurs produits
phares en l'utilisant ?

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.

Bien sûr, le python a aussi ses inconvénients :

 Ce n'est pas un démon de la vitesse - Python n'offre pas de performances exceptionnelles ;


 Dans certains cas, il peut résister à certaines techniques de test plus simples - cela peut signifier
que le débogage du code Python peut être plus difficile qu'avec d'autres langages ;
heureusement, il est toujours plus difficile de faire des erreurs en Python.

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.

Il a de nombreux adeptes, mais il y en a beaucoup qui préfèrent d'autres langages et ne considèrent


même pas Python pour leurs projets.

Les rivaux de Python ?


Python a deux concurrents directs, avec des propriétés et des prédispositions comparables. Ce sont :

 Perl - un langage de script écrit à l'origine par Larry Wall ;


 Ruby - un langage de script créé par Yukihiro Matsumoto.

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…

Où pouvons-nous voir Python en action ?


Nous le voyons tous les jours et presque partout. Il est largement utilisé pour mettre en œuvre des
services Internet complexes comme les moteurs de recherche, le stockage et les outils dans le nuage,
les médias sociaux, etc. Chaque fois que vous utilisez l'un de ces services, vous êtes en fait très proche
de Python, bien que vous ne le sachiez pas.

De nombreux outils de développement sont implémentés en Python. De plus en plus d'applications


d'usage quotidien sont écrites en Python. Beaucoup de scientifiques ont abandonné les outils
propriétaires coûteux pour passer à Python. De nombreux testeurs de projets informatiques ont
commencé à utiliser Python pour effectuer des procédures de test répétables. La liste est longue.

Pourquoi pas Python ?


Malgré la popularité croissante de Python, il existe encore quelques niches où le python est absent, ou
rarement vu :

 La programmation de bas niveau (parfois appelée programmation "proche du métal") : si vous


souhaitez mettre en œuvre un pilote ou un moteur graphique extrêmement efficace, vous
n'utiliserez pas Python ;
 Les applications pour les appareils mobiles : bien que ce territoire attende encore d'être
conquis par Python, cela arrivera très probablement un jour.

Il y a plus d'un python


Il existe deux principaux types de Python, appelés Python 2 et Python 3.

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.

Python alias CPython


En plus de Python 2 et Python 3, il existe plus d'une version de chacun.

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.

PyPy and RPython


Soyez attentif au logo ci-dessous. C'est une énigme. Pouvez-vous la résoudre ?

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.

De plus, PyPy est compatible avec le langage Python 3.

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.

Comment obtenir Python et comment l'utiliser ?


Il existe plusieurs façons d'obtenir votre propre copie de Python 3, en fonction du système
d'exploitation que vous utilisez.

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.

Si vous êtes un utilisateur de Linux, ouvrez le terminal/console et tapez :

python3

A l'invite du shell, appuyez sur Entrée et attendez.

Si vous voyez quelque chose comme ceci :

Python 3.4.5 (default, Jan 12 2017, 02:28:40)


[GCC 4.2.1 Compatible Clang 3.7.1 (tags/RELEASE_371/final)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Alors vous n'avez rien d'autre à faire.

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.

Tous les utilisateurs non-Linux peuvent en télécharger une copie à


l'adresse : https://www.python.org/downloads/ téléchargez et installez intuitivement…

Et c’est parti !

Télécharger et installer Python

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.

Commencer votre travail avec Python


Maintenant que vous avez installé Python 3, il est temps de vérifier s'il fonctionne et d'en faire la toute
première utilisation.

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 :

Pour obtenir la console :

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 ».

La ligne ressemble à ceci :

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 :

Pour obtenir l’exécution du programme au niveau de la console :

Fermez maintenant les deux fenêtres et revenez sur le bureau.

Comment « endommager » et corriger votre code


Rouvrez de nouveau votre IDLE.

Cliquez sur « File »  « Open », pointez sur le fichier que vous avez sauvegardé précédemment et
laissez IDLE le lire.

Essayez de le ré-exécuter en appuyant sur « F5 » lorsque la fenêtre de l'éditeur est active.

Comme vous pouvez le voir, IDLE est capable de sauvegarder votre code et de le récupérer lorsque
vous en avez besoin à nouveau.

IDLE contient une fonction supplémentaire et utile.

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.

La fenêtre de l'éditeur montre clairement où cela s'est passé :

Corrigez le code. Il devrait ressembler à ceci :

print("Ramadan Moubarak...")

Exécutez de nouveau le programme pour constater que cette fois-ci ça marche.

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 message (en rouge) s'affiche (dans les lignes suivantes) :

 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 »

Expérimentez la création de nouveaux fichiers et l'exécution de votre code. Essayez d'afficher un


message différent à l'écran. Essayez d'altérer et de réparer votre code - voyez ce qui se passe…

Sandbox « Bac à sable »


A vrai dire, ce cours ne nécessite pas l'installation de logiciels (python 3.8.2) pour tester votre code et
faire les exercices.

Pour tester ou expérimenter votre code, vous pouvez utiliser un environnement de programmation en
ligne dédié et interactif.

Sandbox permet d'exécuter du code Python dans un navigateur Internet.

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.

L'interface Sandbox se compose de trois parties principales :

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.

Copiez maintenant le code suivant :

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 voir ce qui se passe.

Voilà le résultat de l’exécution :

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.

Félicitations ! Vous avez terminé le module 1

Et Maintenant place au QUIZ.

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 :

 Les types de données et les méthodes de base de formatage, de conversion, d'entrée et de


sortie des données ;
 Les opérateurs ;
 Les variables.

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.

Il existe 69 fonctions intégrées dans Python, pour les voir toutes


(https://docs.python.org/3/library/functions.html). Contrairement aux fonctions définies par
l'utilisateur (voir plus loin), ces fonctions intégrées sont toujours disponibles et n'ont pas besoin d'être
importées.

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 :

print("Rahmani","Abdelhak","Formateur animateur", sep="-")

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() :

print("Mon", "nom", "est", sep="_", end=" : ")


print("Rahmani", "Abdelhak", sep="*", end=".")

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 :

print("Affiche du caractère \\")

LAB

Ecrire une fonction print() utilisant « sep » et « end » permettant d’afficher :


Programming***Essentials***in...Python

print("Programming","Essentials","in", sep="***", end="...")


print("Python")

Les données littérales


Soit l’exemple suivant :

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 1er cas, il s’agit du caractère « 2 », tout comme les lettres « a » ou « z ».

Dans le second cas, il s’agit du nombre « 2 » qui a une toute autre signification.

Les entiers (Integer)


L’ordinateur n’a pas un autre moyen de stocker les nombres et les traiter autrement qu’avec le
système binaire composé uniquement des 2 représentations « 0 » et « 1 ». En effet, l’ordinateur est
un assemblage complexe de composants électroniques dans lesquels passe du courant électrique et
donc ils ne savent traiter les données que sous forme d’impulsions électriques qui ne peuvent être en
vérité que sous 2 états : « 0 » courant passe, « 1 » courant ne passe pas, si bien que tous les transits
d’information dans la machine se font quasiment avec ce système binaire.

Pour ce qui est des nombres manipulés par l’ordinateur, ils sont de 2 types :

1. Les nombres de type entier dépourvus de la partie fractionnaire (10 - 25 - 1000,…).


2. Les nombres de type flottant (avec virgule flottante) qui peuvent contenir la partie
fractionnaire (10,25 - 1050,1234 …).

23
L’ordinateur stocke différemment ces 2 types de nombres en mémoire.

Intéressons-nous pour l’instant au type entier.

Prenons l’exemple du nombre « onze millions cent onze mille cent onze », à la main on peut l’écrire :

11 111 111 ou 11.111.111 ou 11,111,111

Mais l’ordinateur n’accepte que les 2 notations : 11111111 ou 11_111_111

print(11111111)
print(11_111_111)

Python accepte bien et affiche ne console :

Et les nombres négatifs, ils sont codés simplement en rajoutant le signe « - » à gauche :

-11111111

Les entiers : représentations binaire, octale et hexadécimale


Les humains ont l’habitude de traiter les nombres décimaux, càd de base 10 (peut-être parce que nous
disposons de 10 doigts). Ainsi le nombre 3452 qui est très intuitif pour nous représente en réalité :

3452 = 2 + 5 x 10 + 4 x 100 + 3 x 1000 = 2 x 100 + 5 x 101 + 4 x 102 + 3 x 103

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).

Exemple : Le nombre 1101 en binaire vaut : 1 x 20 + 0 x 21 + 1 x 22 + 1 x 23 = 13 (en base 10)

Représentation octale (base 8) : Les nombres ne peuvent être représentés qu’avec les 8 chiffres 0 à 7

Exemple : Le nombre 227 en octale vaut : 7 x 80 + 2 x 81 + 2 x 82 = 151 (en base 10)

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 !

Exemple : Le nombre A2C en hexadécimale vaut :

12 x 160 + 2 x 161 + 10 x 162 = 2604 (en base 10)

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)

Les nombres décimaux ou flottants (float)


Comme le type entier « integer » qu’on vient de voir, il existe dans Python un autre type « float » de
nombre avec une partie fractionnaire (après la virgule) non vide.

Exemples : 2.5 ; -0.5 ; 256.1789

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.)

Entiers vs décimaux (integers vs floats)


Un chose importante à savoir est que le point « . » du décimal est essentiel dans Python pour
reconnaître les nombre à virgule flottante, en effet, le nombre 4 tout court est un entier (integer) pour
Python, alors que 4.0 est un décimal (float) !

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.

Exemple : la vitesse de la lumière est de 300000000 m/s ou 3.108 m/s

En Python on l’écrit comme 3e8 ou 3E8 (il est nécessaire que l’exposant soit un nombre entier !)

print(3e8)
print(3E8)

Codage des floats


Python permet de coder aussi les nombres réels (float) très petits qui sont proches du zéro.

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 :

Conclusion : Python choisit toujours la forme la plus économique de la présentation du nombre, et


vous devez en tenir compte lorsque vous créez des nombres littéraux.

Chaînes de caractères (Strings)


Les chaînes de caractères sont aussi un type Python tout comme integer et float. On les utilise
lorsqu’on doit traiter des textes tout simplement.

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"

On peut le faire de 2 manières différentes :

La 1ère consiste à utiliser le fameux caractère d’échappement « \ » avant chacun des guillemets :

print("I like \"Monty Python\"")

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 « \ » :

print('I like "Monty Python"')

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 :

On souhaite afficher le texte suivant avec l’apostrophe : I'm Monty Python.

2 solutions :

En utilisant le caractère d’échappement « \ » :

print('I\'m Monty Python.')

Ou en utilisant les guillemets pour coder notre chaîne de caractères :

print("I'm Monty Python.")

Remarque : Un chaine de caractères peut être vide, on la note : "" ou ''

Les valeurs booléennes


Les valeurs booléennes représentent un autre type Python comme ceux qu’on a vu jusqu’à maintenant
mais ne pouvant prendre que 2 valeurs : Vrai (1) et Faux (0) ou en Python True (1) et False (0).

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.

Un programmeur écrit un programme, et le programme pose des questions. Python exécute le


programme, et fournit les réponses. Le programme doit être capable de réagir en fonction des
réponses reçues.

Heureusement, les ordinateurs ne connaissent que deux types de réponses :

 Oui, c'est vrai ;


 Non, c'est faux.

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

Quels sont les types des 2 littéraux suivants ?


"Hello ", "007"

Ce sont tous les 2 des Strings

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

Quelle est la valeur décimale du nombre binaire suivant ?


1011

C’est 11 , car 1x20 + 1x21 + 0x22 + 1x23 = 11 (en base 10)

Python comme calculateur


On se doutait bien que Python savait faire des calculs, c’est d’ailleurs une de ses principales raisons
d’être. Voici des exemples :

print(2 + 2)
print(2 - 2)
print(2 * 2)
print(2 / 2)

Donc intéressons-nous aux opérateurs et expressions.

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.)

Nous constatons que le résultat de la division est toujours un float !

Justement, lorsqu’on souhaite que le résultat d’une division soit entier, on fait appel à :

Opérateur de division entière //


print(6 // 4)
print(6. // 4)

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.

Opérateur : reste de la division (modulo) %


6 % 4 = 2, car 6 / 4 = 1 et le reste de la division est justement 2 (6 = 4 * 1 + 2).

print(14 % 4)
print(12 % 4.5)

En effet, 14 / 4 = 3 et le reste est 2. 12 / 4.5 = 2 et le reste est 3 (2 * 4.5 = 9.0).

Remarque : Python ne permet pas n’importe quelle division par zéro.

Opérateur d’addition +
print(-4 + 4)
print(-4. + 8)

Opérateur de soustraction - les opérateurs unaire et binaire


L’opérateur « - » peut être utilisé de manière binaire (entre 2 opérandes) : 4 – 2 = 2, ou de manière
unaire pour changer le signe d’un nombre : -2 (l’opposé de 2).

print(-4 - 4)
print(4. - 8)
print(-1.1)
print(+2)

Ordre de priorité des opérateurs


On considère l’exemple suivant où ne met aucune parenthèse. Est-ce que le résultat est 2 + (3*5) = 17
ou (2+3)*5 = 25.

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.

Les opérateurs et leurs liaisons


A priorité égale, on effectue généralement les calculs de gauche à droite pour tous les opérateurs sauf
l’exponentiation « ** ».

print(9 % 6 % 2)

En effet, de gauche à droite : 9 % 6 = 3 et 3 % 2 = 1

Python ne fait pas 6 % 2 = 0 et ensuite on sera embêté avec 9 % 0 !

Pour l’opérateur d’exponentiation, c’est différent :

print(2 ** 2 ** 3)

Python fait le traitement de droite à gauche, d’abord 2 ** 3 = 8, ensuite 2 ** 8 = 256

Et non pas de gauche à droite : 2 ** 2 = 4, ensuite 4 ** 3 = 64

Liste des priorités


Priorité décroissante Opérateur Genre
1 + , - Unaire
2 **
3 *, / , %
4 + , - Binaire

+ et - unaires ont la priorité la plus élevée.

Ensuite **, suivi de * , / , et %, puis la priorité la plus faible : + et – binaire.

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.

print((5 * ((25 % 13) + 100) / (2 * 13)) // 2)

En effet, 25%13 = 12 + 100 = 112 / 26 (2*13) = 4.307… * 5 = 21.538…// 2 = 10.0

Exercices
Exercice 1

Quel est le résultat de l’exécution de l’instruction suivante ?


print((2 ** 4), (2 * 4.), (2 * 4))

Réponse :
16 8.0 8

Exercise 2

Quel est le résultat de l’exécution de l’instruction suivante ?


print((-2 / 4), (2 / 4), (2 // 4), (-2 // 4))

Réponse :
-0.5 0.5 0 -1

Exercise 3

Quel est le résultat de l’exécution de l’instruction suivante ?


print((2 % -4), (2 % 4), (2 ** 3 ** 2))

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.

En Python une variable doit avoir :

 Un nom ;
 Une valeur (le contenu du conteneur).

Commençons par les questions liées au nom d'une variable.

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…).

Noms de variables corrects et incorrects


Notez que les mêmes restrictions s'appliquent aux noms de fonction.

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.

Voici quelques noms de variables corrects, mais pas toujours pratiques :

MyVariable , i , t34 , Exchange_Rate , counter , days_to_christmas , TheNa


meIsSoLongThatYouWillMakeMistakesWithIt , _ .
De plus, Python vous permet d'utiliser non seulement les lettres latines mais aussi des caractères
spécifiques aux langues qui utilisent d'autres alphabets.

Ces noms de variables sont également corrects :

Adiós_Señora , sûr_la_mer , Einbahnstraße , переменная .


Et maintenant, quelques noms incorrects :

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 :

Il faut évoquer aussi le typage dynamique des variables dans Python.

Les variables suite


Il n’est pas nécessaire de déclarer une variable pour l’utiliser :

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)

On constate qu’on peut afficher en concaténant des « string » à l’aide de l’opérateur « + » ou


simplement en séparant les arguments du print() avec « , ».

Affecter une nouvelle valeur à une variable

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.

 Créer les variables : john, mary, et adam ;


 Attribuer des valeurs aux variables. Les valeurs doivent être égales au nombre de fruits
possédés par Jean, Marie et Adam respectivement ;
 Après avoir enregistré les nombres dans les variables, imprimez les variables sur une ligne et
séparez-les par une virgule ;
 Créez maintenant une nouvelle variable appelée totalPommes, égale à l'addition des trois
anciennes variables.
 Imprimez la valeur stockée dans totalApples sur la console ;
 Expérimentez votre code : créez de nouvelles variables, attribuez-leur différentes valeurs et
effectuez diverses opérations arithmétiques sur elles (par exemple, +, -, *, /, //, etc.). Essayez

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 :

variable = variable op expression

S’écrit de manière simplifiée :

variable op= expression

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.

# Convertisseur Mile <--> Kilomètre


kilometers = 12.25
miles = 7.38
miles_to_kilometers = miles * 1.61
kilometers_to_miles = kilometers / 1.61
print(miles, "miles is", round(miles_to_kilometers, 2), "kilometers")
print(kilometers, "kilometers is", round(kilometers_to_miles, 2),
"miles")

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

#Fonction polynôme de degré 3


x = 1
#Conversion de x en float
x = float(x)
y = (3 * x ** 3) - (2 * x ** 2) + (3 * x) - 1
print("y =", y)

Exercices :

Exercice 1

Quel est le résultat de l'extrait de code suivant ?

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

Quel est le résultat de l'extrait de code suivant ?

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

Quel est le résultat de l'extrait de code suivant ?

a = 6
b = 3
a /= 2 * b
print(a)

Insertion des commentaires dans le code


Le programmeur écrit des lignes pour expliquer son code, donner des informations sur les instructions,
sur l’auteur du code…ces lignes, très importantes pour les utilisateurs et le programmeur lui-même,
qui figurent dans le programme mais ne s’exécutent pas s’appellent des commentaires.

Il suffit pour cela de les faire précéder par « # ». Chaque ligne de commentaire doit être précédée par
«#»!

Exemple :

# Ce programme calcule l’hypoténuse c d’un triangle rectangle.


# a et b sont les mesures des autres côtés du triangle.
a = 3.0
b = 4.0
c = (a**2 + b**2)**0.5 # On utilise ** au lieu de la racine carrée.
print("c =", c)

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.

On voit aussi un commentaire à la ligne 5 placé à la suite de l’instruction.

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 :

# Ceci est un test de programme.


x = 1
y = 2
# y = y + x
print(x + y)

Cela se fait souvent lors du test d'un programme, afin d'isoler l'endroit où une erreur peut être cachée.

Pour commenter ou dé-commenter un code, il suffit sélectionner la ou les lignes à commenter et


utiliser le raccourci clavier : CTRL + « / ».

Pour insérer des commentaires sur plusieurs lignes, soit on place le « # » devant chaque ligne de
commentaire, soit on utilise 3 fois les guillemets « """ …. """ » :

""" Commentaires sur


Plusieurs
Lignes """
x = 1
y = 2
# y = y + x
print(x + y)

Exercice 1

Quel est le résultat de l'extrait de code suivant ?

# print("String #1")
print("String #2")

En effet, la 1ère instruction étant un commentaire.

Exercice 2

Que se passe-t-il lorsque vous exécutez le code suivant ?

# 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 :

Print("Dites-moi quelque chose...")


quelque_chose = input()
print("Hmm...", quelque_chose, "... Vraiment?")

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 :

quelque_chose = input("Dites-moi quelque chose...")


print("Hmm...", quelque_chose, "... Vraiment?")

Vocabulaire : Dans la fonction input("Dites-moi quelque chose"), le message à l’intérieur de cette


fonction (son argument) s’appelle le message d’invite.

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 « * » :

quelque_chose = input("Dites-moi quelque chose...")


print("Hmm...", quelque_chose * 2, "... Vraiment?")

Fonction input() : opération interdite


# Test de message d’erreur

42
quleque_chose = input("Entrer un nombre : ")
autre_chose = quleque_chose ** 2.0
print(quleque_chose, "to the power of 2 is", autre_chose)

En ayant saisi le nombre « 3 » au clavier, cela donne l’erreur suivante :

Normal, puisqu’on ne peut pas élever un « string » au carré !

En revanche le code suivant ne génère pas d’erreur :

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)

r = float(input("Entrer un nombre réel : "))


pr = r ** 3.0
print(r, "à la puissance 3 est", pr)

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.

# Calcul de l'hypothénuse d'un triangle rectangle


leg_a = float(input("Saisir la mesure du 1er côté : "))

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)

Opérations sur les chaînes de caractères


Concaténation

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 :

#Concaténation des chaînes de caractères


prenom = input("Saisir votre prénom, please : ")
nom = input("Saisir votre nom, please : ")
print("Merci.")
print("\nVous vous appelez : " + prenom + " " + nom + ".")

Duplication

L’opérateur « * » appliqué à une chaîne de caractères et un nombre entier permet de la dupliquer de


la manière suivante : string * nombre ou nombre * string.

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 :

x = float(input("Enter une valeur de x : "))


y = (1 / (x + (1 / (x + (1 / (x + (1 / x)))))))
print("y =", y)

45
Exercice 1

Quel est le résultat de l'extrait de code suivant ?

x = int(input("Entrer un nombre : ")) # L’utilisateur entre 2


print(x * "5")

Exercice 2

Quel est le résultat de l'extrait de code suivant ?

x = input("Enter a number: ") # L'utilisateur entre 2


print(type(x))

Oui en effet, on sait très bien que le type retourné par la fonction input() est string !

Et maintenant place au Quiz…

46
Module 3 Valeurs booléennes, structures conditionnelles, structures
itératives, listes, opérations logiques

Dans ce module, vous en apprendrez davantage sur :

 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 programmeur écrit un programme et le programme pose des questions.

Un ordinateur exécute le programme et fournit les réponses. Le programme doit pouvoir réagir en
fonction des réponses reçues.

Heureusement, les ordinateurs ne connaissent que 2 types de réponses :

 Oui c'est vrai ;


 Non, c'est faux.

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.

Opérateur de comparaison de l’égalité

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

Vous aimerez peut-être aussi