Python : un Langage de
programmation interprété
Un langage de programmation constitue un moyen qui permet au développeur de programmer
la machine sans avoir à écrire du code machine. Un programme écrit avec un langage de
programmation de haut niveau est appelé code source. De même, le fichier contenant le code
source est appelé fichier source.
On a deux façons différentes pour transformer un programme écrit avec un langage de
programmation de haut niveau en langage machine :
Compilation ou Interprétation :
COMPILATION:
pour les langage de programmation compilés, le programme source est traduit une
[Link] dit, la phase de compilation (traduction en code machine) sera faite une seule
fois. Mais, cet acte doit être faite après chaque modification du code ( si le programmeur
modifie le code, alors, il doit recompilé le programme pour régénérer un nouveau code
machine qui inclut les modifications). Le résultat de cette phase est un fichier (par exemple,
un fichier .exe si le code est destiné à être exécuté sous MS Windows) contenant le code
machine .Alors, le programmeur peut distribuer le fichier dans le monde entier. Le
programme qui effectue cette traduction est appelé compilateur ;
INTERPRÉTATION : le programme source est traduit à chaque fois qu’il doit être
exécuté; le programme effectuant ce type de transformation est appelé un interpréteur,
car il interprète le code chaque fois qu’il est destiné à ê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éteur pour l’exécuter.
Comparaison entre la compilation et l’interprétation :
Un langage de programmation est généralement conçu pour appartenir à l’une des deux
catégories (interprété (langages de script) ou compilé) .Peu de langage existants
appartiennent aux deux catégories.
COMPILATION INTERPRETATION
AVANTAGES · l’exécution du code traduit est généralement · pas de phase supplémentaire d
plus rapide; traduction;
· seul le développeur doit avoir le compilateur · le code peut être exécuté sur de
ordinateurs utilisant différents la
· le code traduit est stocké en langage machine machine
– comme il est très difficile de le comprendre,
vos propres inventions et astuces de
programmation resteront probablement votre
secret.
· l’interprétation n’accélère pas
·la compilation elle-même peut être un
grande vitesse (le code partagera
processus très long (on ne peut pas exécuter le
puissance de l’ordinateur avec
code immédiatement après toute modification);
l’interpréteur), donc il ne peut p
DÉSAVANTAGES
vraiment rapide;
· Besoin d’autant de compilateurs que de
plates-formes matérielles sur lesquelles le code
· L’utilisateur final doit avoir l’
soit exécuté.
pour exécuter le code.
Python : Langage de programmation interprété :
Python est un langage de programmation interprété de haut niveau avec une sémantique
dynamique, utilisé pour la programmation à usage général. Le nom du langage de
programmation Python vient d’une ancienne série de sketchs de comédie télévisée de la BBC
appelée Monty Python’s Flying Circus .
L’une des caractéristiques étonnantes de Python est le fait qu’il s’agit en fait du travail d’une
seule personne. Python a été créé par Guido van Rossum. Il a utilisé le langage de
programmation “C” pour implémenter la toute première version de son langage. Bien sûr,
Guido van Rossum n’a pas développé et fait évoluer tous les composants Python lui-même.
La vitesse avec laquelle Python s’est propagé dans le monde est le résultat du travail continu
de milliers de programmeurs (très souvent anonymes), de testeurs, d’utilisateurs et de
passionnés, mais il faut dire que la première idée vient de Guido.
Python a été créé par Guido van Rossum , né en 1956 à Haarlem, aux Pays-Bas.
Avantages du langage Python
Python est un jeune langage de programmation qui est très répandu. On cite ci-dessous
quelques avantages que python offre et lui rendre parmi les langages de programmations les
plus demandés :
Facile à apprendre
Offre un code propre et bien structuré
Très léger : les programmes Python sont beaucoup plus courts que le code écrit dans
d’autres langages de programmation modernes. D’où, le gain en temps de
développement et de maintenance.
Ouvert (open source): Python dispose d’une grande communauté de développeurs. On
propose plusieurs bibliothèques et modules open source qui fournissent aux
développeurs des solutions de haute qualité qu’ils peuvent facilement intégrer dans
leurs applications pour répondre à pratiquement toutes les exigences (à titre
d’exemple : Python propose Django et Flask, des bibliothèques populaires pour le
développement Web et TensorFlow, Keras et SciPy pour les applications de science
des données.).
Peut être utilisé dans différents domaines (applications web, applications de bureau,
serveurs réseau ..) . En particulier, c’est le langage des domaines de la Data Science ou
de l’Intelligence artificielle
Largement utilisé pour développer des applications Web évolutives. YouTube,
Instagram, Pinterest, SurveyMonkey sont tous intégrés en Python.
Gratuit, ouvert et multiplateforme.
Remarque : Ces deux versions de Python ne sont pas compatibles l’une avec l’autre. Les
scripts Python 2 ne s’exécuteront pas dans un environnement Python 3 et vice versa, Python 3
est un langage complètement différent de Python 2, bien qu’il soit très similaire à son
prédécesseur.
Python 2 VS Python 3 :
Il existe deux principaux types de Python, appelés Python 2 et Python 3.
Python 2 est une ancienne version du Python d’origine. Python 2.0 est sorti pour la première
fois en 2000. Des mises à jour de python 2 sont publiées régulièrement, mais elles ne sont pas
destinées à modifier la langue de manière significative. Ils corrigent plutôt tous les bugs et
failles de sécurité récemment découverts (dernière mise à jour 2.7.18 : s’est produit le 1er
janvier 2020, mais la version finale a eu lieu après cette date (en avril 2020)). En janvier
2020, Python 2 a atteint le statut de fin de vie (lien)
Python 3 est la version actuelle du langage. Il suit son propre chemin d’évolution, créant
ses propres normes et habitudes. Python 3.0 est sorti en 2008. Sa dernière version, 3.10.0,
est sortie en octobre 2020.
Il est important de se rappeler qu’il peut y avoir des différences entre les versions ultérieures
de Python 3. Cependant, toutes les versions plus récentes de Python 3 sont rétro compatibles
avec les versions précédentes. Tous les exemples de code que vous trouverez au cours ont été
testés avec Python 3.9.0.
Variables en python
Une variable est une donnée de votre programme stockée dans
l’[Link], elle sert à stocker une valeur pour l’utiliser en cas de besoin.
Mais, pour les langages de programmation, le concept de variables peut prendre
différentes formes. En effet, les deux plus courantes vont être les variables sous
forme de boîtes et les étiquettes.
représentation d’une variable en langage C : boite
représentation d’une variable en python : étiquette
Une variable est décrite par un nom, et représente une valeur stockée dans la mémoire.
Attention, le nom de la variable ne doit pas être un des mots réservés de Python. En outre, on
a une bonne pratique: Pour les noms des variables choisissez des noms représentatifs des
informations qu’ils désignent. Ainsi MONTANT est un meilleur choix que X pour désigner
le montant d’une facture.
Définition des variables en python :
Pour être utilisée, une variable a besoin d’avoir été déclarée et définie :
Déclarer une variable :c’est indiquer au compilateur/interpréteur que tel nom existe
dans tel contexte pour lui permettre de résoudre les utilisations de ce nom.
Définir (utiliser) une variable :c’est lui assigner une valeur
Dans un algorithme, l’utilisation d’une variable se fait via l’instruction d’affectation.
Ces deux concepts sont confondus en python : x = 20 revient à déclarer une variable x puis à
la définir sur 20. Par la suite, un x = 26.5 dans le même contexte revient à redéfinir une
variable déjà déclarée. C’est-à-dire déplacer l’étiquette sur une autre valeur.
Python : Déclaration et utilisation des variables
nom_de_la_variable = valeur
Exemple : x=12
Type des données :
Les données stockées en mémoire peuvent être de plusieurs types. Par exemple, la note d’une
personne est stockée sous forme de valeur numérique et son adresse est stockée sous forme de
caractères alphanumériques. Ainsi, Python possède différents types de données standard qui
sont utilisés pour définir les opérations possibles sur eux et la méthode de stockage pour
chacun d’eux.
Type numérique :
Les nombres manipulés peuvent être :
des entiers, c’est-à-dire ceux qui sont dépourvus de partie fractionnaire;
des nombres à virgule flottante (ou simplement flottants), qui contiennent (ou peuvent
contenir) la partie fractionnaire.
Exemples : Nombres flottants : 12.5,-10.4 #on utilise un point au lieu du virgule !!
Remarque 1 : 4 et 4.0 Python les voit d’une manière complètement différente. En effet, 4
est un nombre entier, alors que 4.0 est vu comme un nombre à virgule flottante.
Remarque 2 : On peut utiliser la lettre e. Alors, lorsque vous souhaitez utiliser des nombres
très grands ou très petits, vous pouvez utiliser la notation scientifique.
Exemple : la vitesse de la lumière, exprimée en mètres par seconde ressemble
à ceci: [Link], en Python, le même effet est obtenu d’une manière légèrement
différente : 3E8 ou 3e8 sachant que E ou e représente l’expression ‘ fois dix à la puissance
de’.
Remarque 3 : nombres octaux et hexadécimaux
Il existe deux conventions supplémentaires en Python :
– La représentation octale: Si un nombre entier est précédé d’un ou d’un 0o préfixe (zéro-o),
il sera traité
comme une valeur octale. Cela signifie que le numéro ne doit contenir que des chiffres pris
dans la plage [0..7].
Exemple : 0o156 est un nombre octal avec une valeur (décimale) égale à 110.
– La représentation hexadécimale :0x ou 0X (zéro-x).
Exemple : 0x156 est un nombre hexadécimal avec une valeur (décimale) égale à 342.
Type Chaine :
Les chaînes sont utilisées pour traiter du texte. De plus, les chaînes ont besoin de guillemets
Type booléen :
En programmation, on doit souvent savoir si une expression est vraie ou fausse. En effet, on
peut évaluer n’importe quelle expression en Python et obtenir l’une des deux
réponses, True ou False.
Instruction de lecture en python
Pour communiquer avec la machine, on doit utiliser des instructions de dialogue
(instructions d’entrée sortie : les fonctions print et input en python).
Il existe une instruction qui permet à l’utilisateur de saisir des valeurs au clavier
pour qu’elles soient utilisées par le programme. La syntaxe de cette instruction de
lecture est : (x est une variable).
syntaxe :
x= input()
ou
x=input(("Donner votre nom complet"))
le résultat de la fonction input est une chaine.
Explication : Lorsque le programme rencontre une instruction input, l’exécution du
programme s’interrompt, attendant la saisie d’une valeur au clavier.
Remarque : En python, on aura besoin des fonctions de transtypage pour imposer
une conversion explicite du résultat de la fonction input (chaine) en un autre type.
Exemples :
Lire un entier : x=int(input(‘Donner un entier’))
Récupérer un réel : y=flaot(inupt(‘Donner un réel:’))
Instruction d'affichage en python
instruction qui permet de communiquer des valeurs à l’utilisateur en les affichant à l’écran. La
syntaxe de cette instruction d’écriture est :
Syntaxe:
print(Message)
ou
print(arg1,arg2,…,argn)
Remarque : print a deux arguments spécifiques facultatifs nommés : end et sep.
1. L’argument end : détermine les caractères que print () envoie à la sortie une fois
qu’elle atteint la fin de ses arguments positionnels. Le comportement par défaut est
équivalent à : end=”\n”.
2. L’argument sep : par défaut print() sépare ses arguments générés par des espaces. Ce
comportement peut également être modifié par utilisation de l’argument sep.
Exercice : Proposer un programme en python qui permet de lire et afficher le nom, le prénom
et l’âge de l’utilisateur. (on doit utiliser les instructions print et input de python)
Opérations en python
Une opération est une instruction où la machine doit faire du calcul en utilisant des
Opérateurs. Un opérateur est un signe qui relie deux opérandes pour produire un résultat.
Pour le type numérique on a les opérateurs arithmétiques suivants :
+ : Addition
– : Soustraction
* : Multiplication
/ : Division
// : Division entière
**: Puissance (exponentiation)
%:modulo
Pour le type chaine, on a :
la concaténation : concaténer deux chaînes de caractères veut dire créer une chaine à
partir de deux chaines. Par exemple : la chaîne de caractères ″Salut″ concaténer à la
chaîne ″tout le monde″ donne comme résultat la chaîne ″Salut tout le monde″. Cet
opérateur de concaténation est le + (oui, le + peut être une opération d’addition ou de
concaténation).
La réplication : pour répéter une chaine un certain nombre de fois, on utilise
l’opérateur * qui représente l’opération de réplication. Exemple : print(“bravo”*10)
Exercices : prédire les résultats:
print(7//2)
print(7//-2)
print(-7//3)
print(7//3)
print(-7%3)
print(-17%2)
print(17%3)
print("10"+"3")
print(10+3)
print(10+"3")
print("3"+"10")
Remarque 1 :
La plupart des opérateurs de Python ont une liaison à gauche, ce qui signifie que le calcul de
l’expression est effectué de gauche à droite. Mais il y a une exception intéressante :
l’opérateur d’exponentiation utilise la liaison à droite.
Remarque 2: Les opérateurs et leurs priorités
Le phénomène qui pousse certains opérateurs à agir avant d’autres est connu sous le nom de
hiérarchie des priorités. Python définit précisément les priorités de tous les opérateurs et
suppose que les opérateurs de priorité plus élevée effectuent leurs opérations avant les
opérateurs de priorité inférieure.
Ci-dessous un tableau qui décrit la priorité des opérateurs vus jusqu’à maintenant (nous avons
énuméré les opérateurs par ordre de priorité (1) à priorité (4) la plus basse) :
priorités des opérateurs en
python
Exercice : Prédire les résultats
1- print(12 * 3 % 5)
2- print(12 + 3 // 5)
3- print(12 % 3- 5)
4- print(12 ** 3 % 5)
Remarque 1 :
Pour les opérateurs qui ont la même priorité, le résultat ne peut être deviné que lorsque vous
connaissez la direction de liaison.
Remarque 2 :
On est toujours autorisé à utiliser des parenthèses, ce qui peut changer l’ordre naturel d’un
calcul. Conformément aux règles arithmétiques, les sous – expressions entre parenthèses sont
toujours calculées en premier.
Exemples :
print(202-2 + 3** 2) == > Résultat : 209
print(202-(2 + 3)** 2) == > Résultat : 177
Remarque : Opérateurs de raccourci
Si op est un opérateur binaire utilisé dans le contexte suivant: variable = variable op
expression. Il peut être simplifié et illustré comme suit: variable op= expression.
Exemples :
i = i + 1 ⇒ i += 1
y = y % 10 ⇒ y %= 10
var = var / 2 ⇒ var /= 2
x = x ** 2 ⇒ x **= 2
Le traitement conditionnel en python
Dans la pratique, la structure alternative peut avoir différentes formes possibles :
a) Forme 1 : if
Pour que notre programme continue à travailler si une condition (simple ou
composée) est vérifiée, alors on doit utiliser une structure alternative avec la forme
suivante :
if (condition) :
:::::: } bloc d’instructions
La valeur de la condition sera interprétée en True ou False . Si la condition est
correcte (évaluée à True) : le bloc d’instructions s’exécuté. Si la condition est évaluée
à False, ce bloc d’instructions sera omis (ignoré) et la prochaine instruction
exécutée sera celle qui suit le ‘Fin si’ en algorithmique ou le niveau d’indentation
d’origine.
Remarque : Portée d’un bloc d’instructions
Python s’appuie sur l’indentation (espace blanc au début d’une ligne) pour définir la
portée dans le code. D’autres langages de programmation utilisent souvent des
accolades à cette fin.
Exemple 1 :
X=int(input("Donner un nombre "))
if x>0 :
print(“nombre positif “) #s’affiche si la condition est vraie
print(“Au revoir “) # s’affiche toujours
Pour X=10 (par exemple),le résultat sera :
Nombre positif
Au revoir
Pour X= -9, le résultat sera :
Au revoir
Remarque : Si on n’a qu’une seule instruction à exécuter, on peut la placer sur la même ligne
que l’instruction if.
Exemple : if x > 10 : print (“nombre positif”)
Exercice : écrire un algorithme, puis un programme qui demande à l’utilisateur deux nombres
et une opération (+ ou – ). Puis, effectue l’opération arithmétique demandée et affiche le
résultat obtenu.
Exemples d’exécution :
Forme 2 : if else
Pour pouvoir proposer le traitement à faire même-ci une condition est erronée, on peut utiliser
cette forme plus générale de la structure alternative :
if condition :
:::::: } bloc1 d’instructions
else:
:::::: } bloc2 d’instructions
Si la condition mentionnée après if est VRAI (True), on exécute le bloc1 d’instructions; si la
condition est fausse, on exécute le bloc2 d’instructions.
Exemple: Si (moy>10) alors ecrire « Admis » sinon ecrire « Redoublant »
Remarque : Si on n’a qu’une seule instruction à exécuter, une pour if et une pour else, on
peut tout mettre sur la même ligne : (Cette technique est connue sous le nom d’opérateurs
ternaires ou expressions conditionnelles.)
x = int(input())
print("nombre positif") if x > 0 else print("nombre négatif ou nul")
On peut également avoir plusieurs instructions else sur la même ligne:
print(">0") if x > 0 else print("=0") if x == 0 else print("<0")
c) Forme 3 : Les structures alternatives imbriquées :
Dans ce cas, la structure alternative contient à son tour une structure alternative: on dit qu’on
a des structures alternatives imbriquées les unes dans les autres.
Exemple :
if condition1:
if condition2:
bloc11
else:
bloc12
else:
if condition3:
bloc21
else:
bloc22
Remarque : cas particulier if elif
Le mot-clé elif est une manière de dire “si les conditions précédentes n’étaient pas vraies,
alors essayez cette condition”.
Syntaxe :
if condition :
bloc 1 d'instructions
elif condition :
bloc 2 d'instructions
Remarque : else et elif sont totalement différentes : else veut dire ‘sinon’ ; c’est-à-dire il
traite tous les autres cas qui restent. Alors que elif inclut une nouvelle condition qui sera
testée.
Exercice : Ecrire un programme qui donne La mention d’un éléve selon sa note
Remarque : l’instruction match (Python 3.10 et plus)
Dans plusieurs langages de programmation, la structure alternative peut prendre une
autre forme qui permet d’imbriquer plusieurs cas. Sa syntaxe est : (Python 3.10 et plus)
match variable :
case v1 :
…..
case v2 :
…..
case v3 :
…..
case vn :
…..
case _:
……..
Le traitement itératif en python
Un programme a presque toujours pour rôle de répéter la même action un certain
nombre de fois. Pour ce faire, on utilise une structure permettant de dire ” Exécute
telles actions jusqu’à ce que telle condition soit remplie” ou bien ” Exécute telles
actions X fois”. Cette structure s’appelle la structure répétitive (une boucle)
Exemple : on veut afficher les nombres de 0 jusqu’à 1000. Pour cela : on peut
demander d’afficher un nombre x qui égal à 0 au début et qui sera incrémenté de 1
après chaque affichage. Ce traitement sera répété tant que x inférieur ou égal à
1000.
Python a deux types de structures répétitives : for et while
1-La boucle while
La structure répétitive while permet d’effectuer une instruction ou des instructions (Bloc
d’instructions) tant qu’une condition est satisfaite ( évaluée à True)
Syntaxe :
while condition :
Blocs instructions
Ce qui signifie : tant que la condition est vraie, on exécute le bloc d’instructions.
Remarque : Problème de boucle infinie
On doit toujours vérifier que la condition de la boucle tant que ne reste pas vraie tout le temps.
Autrement dit, on doit inclure dans le bloc d’instructions à répéter une instruction qui met à
jour la condition de la boucle de telle façon à ce qu’elle sera invalide (et donc la boucle
s’arrête) après un certain nombre de répétitions
Exemple :
i=0
while i<10:
print("bonjour")
Boucle infinie :
Bonjour s’affiche infiniment (sans arrêt)
i=0
while i<10:
print("bonjour")
i+=1
Boucle correcte :
Bonjour s’affiche 10 fois.
2- La boucle for :
Dans la plupart des langages de programmation, la structure répétitive for permet de répéter
des instructions un certain nombre de fois.
En python, une boucle for est utilisée pour itérer sur une séquence (c’est-à-dire une liste, un
tuple, un dictionnaire, un set ou une chaîne). Autrement dit, elle permet de parcourir une
séquence du premier au dernier élément.
Remarque : Cela ressemble moins au mot-clé for dans d’autres langages de programmation,
et fonctionne plus comme une méthode d’itération que l’on trouve dans d’autres langages de
programmation orientés objet.
2-1 Parcourir une séquence de nombres : la fonction range
La boucle For peut parcourir une séquence de nombres en utilisant la fonction “range“. La fonction
range () renvoie une séquence de nombres, commençant par 0 par défaut et incrémentée de 1 (par
défaut), et s’arrête avant un nombre spécifié. Syntaxe : range(start, stop, step) avec :
start (facultatif) : Un nombre entier spécifiant à quelle position commencer. La valeur par
défaut est 0.
stop (Requis) : Un nombre entier spécifiant à quelle position s’arrêter (non inclus.
step (facultatif) : Un nombre entier spécifiant l’incrémentation. La valeur par défaut est 1
Exemples :
x = range(3, 20, 2)
for n in x:
print(n)
x = range(3)
for n in x:
print(n)
x = range(3,2)
for n in x:
print(n)
2-2 Parcourir une chaine de caractère
Les chaînes sont aussi des objets itérables, elles contiennent une séquence de caractères.
Aisni, on peut utiliser la boucle for pour les parcourir.
Exemples :
for x in "P*y*t*h*o*n*":
if x!='*':
print(x,end="")
On parcourt la chaine ‘P*y*t*h*o*n*’ caractère par caractère et on affiche tous les caractères
sauf ‘*’
Résultat : Python
3- La boucle do while
C’est la traduction de la boucle Répéter…Jusqu’à en algorithmique, qui comme son nom
l’indique, permet de répéter une instruction jusqu’à ce qu’une condition soit satisfaite.
Syntaxe :
while True:
# statement (s)
if not condition:
break