Introduction à Python et Algorithmique 2
Introduction à Python et Algorithmique 2
Jadida
Informatique 2 :
Algorithmique 2/Python
Notion de Variable
Types de données de
base
Opérateurs 3
Les entrées/sorties
1 Instructions
Rappels élémentaires
Introduction
o Le langage utilisé par l’ordinateur pour traiter les informations est le langage
binaire (constitué par une suite de 0 et 1) directement compréhensible par
la machine. Ce langage est appelé : langage machine (Langages de bas niveau).
4
1 Instructions
Rappels élémentaires
Langage Python
o Python est un langage de programmation développé depuis 1989 par Guido van
Rossum et de nombreux contributeurs bénévoles.
5
1 Instructions
Rappels élémentaires
Pourquoi apprendre le langage Python
o Simplicité : Python a une syntaxe simple et claire et qui est facile à apprendre et à comprendre.
o Multi-plateforme : Python peut être exécuté sur de nombreuses plateformes différentes, y
compris Windows, MacOS et Linux, sans nécessiter de modification du code.
o Multitude d'utilisations : Python est utilisé dans de nombreuses applications telles que la
science des données, la programmation Web, la création de scripts et l'Intelligence Artificielle .
o Grande communauté et bibliothèques : Python a une grande communauté active
de développeurs qui contribuent à denombreuses bibliothèques et outils
pour faciliter le
développement.
o Dynamiquement typé : tout objet manipulable par le programmeur possède un type bien défini
à l'exécution, qui n'a pas besoin d'être déclaré à l'avance.
6
1 Instructions
Rappels élémentaires
Environnement de développement intégré (IDE)
o Un IDE est un logiciel de création d'applications, qui se compose habituellement des
éléments suivants :
o Éditeur de code source
o Compilateur ou interpréteur
o Débogueur
L'algorithme doit avoir une structure bien définie. Cette structure doit comporter :
8
1 Instructions
Rappels élémentaires
Structures d’un algorithme
Algorithme nom_algo
Début
Iinstruction1
Instruction 2
Traitement
Suite d’instructions &
Instruction 3
Résultats
… …
Instruction n
Fin 9
1 Instructions
Rappels élémentaires
Variables et Constantes
o Une variable est un objet dont le contenu (sa valeur) peut être modifié par une action.
o Toute variable utilisée dans un programme doit être l’objet d’une déclaration préalable .
o En pseudo-code, la déclaration de variables est effectuée par la forme suivante :
Exemples:
Variables i, j, k : Entier
x, y : Réel
OK: Booléen
C1, C2 :
10
Caractère
1 Instructions
Rappels élémentaires
Variables et Constantes
o Une constante est un objet dont l'état reste inchangé durant toute l'exécution d'un
programme. On ne peut jamais modifier sa valeur et celle-ci doit donc être précisée
lors de la définition de l'objet.
Exemple:
12
1 Instructions
Rappels élémentaires
Syntaxe en Python
13
1 Instructions
Rappels élémentaires
Opérateurs
Opérateurs arithmétiques
Opérateur Fonction Exemple Langage Python
+ Addition X+Y +
- Soustraction X-Y -
* Multiplication X*Y *
14
1 Instructions
Rappels élémentaires
Opérateurs
Opérateurs de comparaison
Opérateur signification Langage Python
= Egal ==
<> Différent !=
15
1 Instructions
Rappels élémentaires
Opérateurs
Opérateurs logiques
OU Ou inclusif or
ET Et logique and
16
1 Instructions
Rappels élémentaires
Instructions d’entrées-sorties: lecture et écriture
Instruction d’entrées: Lecture
Définition
o L'instruction de lecture permet à l'utilisateur de rentrer une valeur au clavier pour
qu'elle soit stockée dans une variable.
Syntaxe
o On écrit l'instruction de lecture de cette façon : Lire (nom_de_variable).
N.B : On peut lire plusieurs valeurs dans une seule instruction en utilisant la virgule.
Exemples :
• Lire (Note)
• Lire (Note1,Note2)
17
1 Instructions
Rappels élémentaires
Instructions d’entrées-sorties: lecture et écriture
Syntaxe en Python
Saisie de données
N.B : On peut afficher plusieurs messages et valeurs des variables dans une seule instruction.
Exemples :
Ecrire ('Donner la note : ')
Lire (Note)
Ecrire ("Votre note est : ", Note, " Merci !") 19
1 Instructions
Rappels élémentaires
Instructions d’entrées-sorties: lecture et écriture
Affichage de données
Syntaxe en Python
o La fonction print() de Python est souvent utilisée pour afficher des variables et des chaînes de
caractères.
o La fonction d’écriture standard print([objet1 , objet2 , ..., objetn], [sep =’ ’], [end =’ \n’ ]) :
affiche la représentation textuelle des objets objeti ;
les objets sont séparés par la chaîne sep, par défaut un espace;
se termine par la chaîne end, par défaut \n.
>>> jj, mm, aa = 26, 02, 2024
o Pour afficher la valeur d’une variable x, on écrit : >>> print(jj, mm, aa, sep = ’/’)
print(x) 26/02/2024
21
1 Instructions
Rappels élémentaires
Syntaxe en Python
Bloc d’instruction
o En Python, chaque instruction s'écrit sur une ligne sans mettre d'espace au début.
Exemple:
a = 10
b=3
print(a, b)
o Ces instructions simples peuvent cependant être mises sur la même ligne en les
séparant par des points virgules.
Exemple:
a = 10; b = 3; print(a, b)
Le bloc d'instructions correspondant se fait par indentation des lignes (décalage).
Une indentation s'obtient par le bouton tab (pour tabulation) ou bien par 4 espaces successifs .
il ne faut pas mélanger espaces et tabulations. On utilisera soit l'un, soit l'autre.
Une mauvaise indentation va provoquer des erreurs! 22
1 Exercices
Rappels d’application
Exemple de programme Python
print("x :",x)
print("y :",y)
test = ( x + y) / 2
print("Résultat :",test)
23
1 Exercices
Rappels d’application
Exercice 1
Écrire un algorithme et un programme en Python demandant à l’utilisateur de saisir son
nom, puis affichant le nom saisi.
24
1 Exercices
Rappels d’application
Solution
Algorithme nom
Variables name : chaîne de
caractères
Début name = input("Quel est ton nom? ")
Ecrire ("Quel est ton print ("Bonjour, ", name)
25
1 Exercices
Rappels d’application
Exercice 2
Ecrire un algorithme et un programme en Python qui permet de :
• Saisir deux nombres entiers
• Les afficher
• Les permuter
• Afficher le résultat
26
1 Exercices
Rappels d’application
Solution 1
Algorithme
deux_nombres_entiers
Variables x,y,t : entier
Début x = int(input("x : "))
y = int(input("y : "))
Ecrire (" x : print ("x = ", x, ", y = ", y)
") Lire (x) t = x
x = y
Ecrire (" y : y = t
") Lire (y) print ("x = ", x, ", y = ", y)
Ecrire (" x " , x , " , y = " ,
y)
=t=x
x=
yy
=t ",x,",y=" ,
y) 27
Ecri
re ("
x=
Fin
1 Exercices
Rappels d’application
Solution 2
x = int(input("x : "))
y = int(input("y : "))
print ("x = ", x, ", y = ",
y) x , y = y , x
print ("x ", x, ", y = ",
= y)
On peut échanger les valeurs
de deux variables d’un coup
(sans introduire de variable
auxiliaire)
28
1 Exercices
Rappels d’application
Exercice 3
Ecrire un algorithme et un programme en Python qui permet de Saisir trois notes d’un
étudiant et d’afficher leur moyenne.
29
1 Exercices
Rappels d’application
Solution 1
Algorithme trois_notes_moyenne
Variables x,y :
note1 = float(input("Entrer la note n°1: "))
entier moyenne note2 = float(input("Entrer la note n°2: "))
: réel note3 = float(input("Entrer la note n°3: "))
Début moyenne = ( note1 + note2 + note3) / 3
Ecrire (" Entrer la note n° 1 :
print("La moyenne est : " , moyenne)
") Lire (note1)
Ecrire (" Entrer la note n° 2 :
") Lire (note2)
Ecrire (" Entrer la note n° 3 :"
) Lire (note3)
moyenne = (note1+note2+note3)/3
moyenne)
Fin
1 Exercices
Rappels d’application
Solution 2
%.2f permet de formater une chaîne de caractères qui représente un nombre flottant avec
Le "f" signifie que le nombre est de type flottant
deux décimales
Le ".2" indique le nombre de décimales à afficher après la virgule
Le "%" est utilisé pour définir le format de la chaîne de caractères. 31
1 Exercices
Rappels d’application
Solution 3
32
1 Structures alternatives
(conditionnelles/Tests)
Rappels
Définition
Condition Composée :
Exemples : (Moy>13) ET
(Moy <= 16) 33
1 Structures alternatives
(conditionnelles/Tests)
Rappels
Séquence2 Séquence2
Finsi
Algorithme Solution 1
ValeurAbs Variable
x = float ( input (" Entrez un réel
x : réel Début
: " )) if x < 0 :
Ecrire(" Entrez un réel :
print ("la valeur absolue de ", x,
" ) Lire (x)
"est:",-x) else :
Si x < 0 alors
print ("la valeur absolue de ", x,
Ecrire ("la valeur absolue de ", x, "est:", x)
"est:",-x) Sinon
Solution 2
Ecrire ("la valeur absolue de ", x,
"est:", x) Finsi x = float ( input (" Entrez un réel : " ))
o Les instructions indentées après if/elif/else font partie de ces blocs, tandis que les
instructions non-indentées n'en font pas partie.
o Respecter une bonne indentation dans les instructions if/elif/else est essentiel pour
obtenir un code fonctionnel et éviter des erreurs de syntaxe.
o Il est recommandé d'utiliser des espaces plutôt que des tabulations pour
l'indentation en Python, car cela évite les problèmes de mise en forme et
facilite la lisibilité du code.
38
1 Structures alternatives
(conditionnelles/Tests)
Rappels
Exemple d’application
39
1 Structures alternatives
(conditionnelles/Tests)
Rappels Algorithme nomJour
Variable n : Entier
Début n = int ( input (" Entrez un nombre
Ecrire ("Entrez un nombre entier : ") entier : " )) if n == 1 :
Lire (n)
Solution 1 Si (n=1) Alors print
Ecrire ("Lundi") ("Lundi") elif
Sinon Si (n=2) Alors n==2 :
Ecrire print
("Mardi") ("Mardi")
Sinon Si (n=3) Alors elif n==3 :
Ecrire ("Mercredi") print
Sinon Si (n=4) Alors ("Mercredi") elif
Ecrire ("Jeudi") n==4 :
Sinon Si (n=5) Alors
print
Ecrire
("Vendredi") ("Jeudi")
Sinon Si (n=6) Alors elif n==5 :
Ecrire ("Samedi") print
Sinon Si (n=7) Alors ("Vendredi") elif
Ecrire ("Dimanche") n==6 :
Sinon print
Ecrire ("Jour ("Samedi")
inexistant ")
elif n==7 :
Finsi
Fin print
("Dimanche")
else :
print ("Jour
1 Structures alternatives
(conditionnelles/Tests)
Rappels
L’instruction match
Algorithme Langage Python
o Jusqu’à sa version Python 3.9 (2020-10-05),
Selon variable match variable:
le langage python n’a pas l’instruction Cas1:
qui est équivalente à l’instruction #Traitement à faire
case cas1:
Selon..Cas #Traitement à faire
Cas2:
o Avec la version Python 3.10 (2021-10-04), #Traitement à faire case cas2:
41
1 Structures alternatives
(conditionnelles/Tests)
Rappels
n = int ( input (" Entrez un nombre
Algorithme nomJour entier : " )) match n :
Variable n : Entier
Solution 2 Début
case 1:
Ecrire ("Entrez un nombre entier : ") print
Lire (n) ("Lundi") case
Selon n 2:
1 : Ecrire ("Lundi") print (" Mardi
2 : Ecrire ("Mardi") ") case 3:
3 : Ecrire ("Mercredi") print (" Mercredi
4 : Ecrire ("Jeudi") ") case 4:
5 : Ecrire ("Vendredi") print (" Jeudi
6 : Ecrire ("Samedi") ") case 5:
7 : Ecrire ("Dimanche") print (" Vendredi
Sinon : Ecrire ("Jour ") case 6:
inexistant") FinSelon print (" Samedi
Fin ") case 7:
print ("
Dimanche ") case
print ("Jour 42
_: inexistant")
1 Exercices
Rappels d’application
Exercice 1
Ecrire un algorithme et un programme en Python qui permet de lire deux nombres
entiers. et déterminer s’ils sont rangés ou non par ordre croissant et, dans tous les cas, il
affiche leur différence (entre le plus grand et le plus petit).
43
1 Exercices
Rappels d’application
Solution en Algorithme
Algorithme rang_2nombres
Variable a,b : entier
Début
Ecrire (" Entrer deux nombres entiers positifs: ")
Lire (a,b)
Si (a<b) alors
Ecrire (" Les nombres sont rangés par ordre croissant")
Ecrire (" La différence entre les nombre est de:“, b-a)
Sinon
Ecrire (" Les nombres ne sont pas rangés par ordre croissant ")
Ecrire (" La différence entre les nombre est de:“, a-b)
Finsi
Fin
44
1 Exercices
Rappels d’application
Solution en Python
45
1 Exercices
Rappels d’application
Exercice 2
• Ecrire un algorithme et un programme en Python qui lit un entier représentant un mois
de l’année (1 pour janvier, 4 pour avril...) et qui affiche le nombre de jours de ce
mois (on supposera qu’on n’est pas en présence d’une année bissextile).
• On tiendra compte du cas où l’utilisateur fournit un numéro incorrect, c’est-à-dire non
compris entre 1 et 12.
46
1 Exercices
Rappels d’application
Solution en Algorithme
Algorithme nb_jours_mois
Variable mois, nb_jours : Entier
Début
Ecrire ("Entrez le numéro du mois (1-12) : ")
Lire (mois)
Si (mois=2) Alors
nb_jours=28
Sinon Si (mois=4) ou (mois=6) ou (mois=9) ou (mois=11) Alors
nb_jours=30
Sinon Si (mois=1) ou (mois=3) ou (mois=5) ou (mois=7) ou (mois=8) ou (mois=10) ou (mois=12)
Alors nb_jours=31
Sinon
Ecrire (" Numéro de mois incorrect. ")
Finsi
if mois == 2: = 28
nb_jours
elif mois == 4 or mois == 6 or mois == 9 or mois == 11:
nb_jours = 30
elif mois == 1 or mois == 3 or mois == 5 or mois == 7 or mois
== 8 or mois == 10 or mois == 12:
nb_jours = 31
else:
print("Numéro de mois incorrect.")
exit()
if mois == 2: = 28
nb_jours
elif mois in (4, 6, 9, 11):
nb_jours = 30
elif mois in (1, 3, 5, 7, 8, 10, 12):
nb_jours = 31
else:
print("Numéro de mois incorrect.")
exit()
Exercice 3
Le prix de photocopies dans une reprographie varie selon le nombre demandé:
0,10 DH pour les 10 premières copies.
0,09 DH pour les 10 copies suivantes.
0,08 DH au-delà.
Ecrire un algorithme et un programme en Python qui demande à l’utilisateur le nombre
de photocopies effectuées, qui calcule et affiche le prix à payer.
50
1 Exercices
Rappels d’application
Solution en Algorithme Solution en Python
Algorithme
Prix_Photocopies Variables
N=int(input("Nombre photocopies:"))
N, prix : Entier Début
if N<=10 :
Ecrire ("Nombre de
prix = N*0.1
photocopies : ")
elif N<=20 :
Lire (N) prix = 10*0,1+(N-10)*0.09
Si N <= 10 Alors else:
prix ← N * 0,1 prix = 10 * 0,1 + 10 * 0,09 + (N – 20)
SinonSi N <= 20 Alors * 0,08
prix ← 10 * 0,1 + (N – 10)
* 0,09 print("Le prix total est: %.2f" % prix)
Sinon
prix ← 10 * 0,1 + 10*
0,09 + (N – 20) * 0,08
FinSi 51
Ecrire ("Le prix total est: ",
prix)
Fin
1 Structures répétitive ou itérative
(boucles)
Rappels
Définition
o La structure répétitive permet de répéter une action ou une séquence d’actions tant
qu’une condition est vraie.
o Une structure répétitive est aussi appelée boucle.
52
1 Structures répétitive ou itérative
(boucles)
Rappels
54
1 Structures répétitive ou itérative
(boucles)
Rappels
Exemple d’application
55
1 Structures répétitive ou itérative
(boucles)
Rappels
Solution en Algorithme
Algorithme ControleSaisie
Variable note : réel ;
Début
note=float(input("Donner la note:"))
note=input("Donner la note:")
note=float(note)
while (True):
while note<0 or note>20 :
if note<0 or note>20 :
print("Erreur de saisie")
print("Erreur de saisie")
note=input("Donner la note:")
note=float(input("Donner
la note:")) note=float(note)
else: print ("La saisie est correcte:" ,
note) ;
print ("La saisie est correcte:", note)
break
57
1 Structures répétitive ou itérative
(boucles)
Rappels
Syntaxe
Fin Pour
58
1 Structures répétitive ou itérative
(boucles)
Rappels
Exemple d’application
59
1 Structures répétitive ou itérative
(boucles)
Rappels Solution
Algorithme Programme Python
Algorithme Bonjour
Variable i : Entier for i in range(1,101) :
Début print("Bonjour")
Pour i ← 1 jusqu’à 100 Faire
Ecrire ("Bonjour")
Fin Pour
Fin
Remarque :
Vous pouvez utiliser la boucle for pour parcourir une séquence de nombres à l'aide
de la fonction range intégrée.
range() c’est une fonction qui permet de créer une liste d’entier en Python.
60
1 Structures répétitive ou itérative
(boucles)
Rappels
La fonction range
o 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 :
range(6) représente la liste des valeurs : 0,1, 2, 3, 4, 5
range (1,6) représente la liste des valeurs : 1, 2, 3, 4, 5
range (1, 6,1) représente la liste des valeurs : 1, 2, 3, 4, 5
range (1,6, 2) représente la liste des valeurs : 1,3,5
61
1 Structures répétitive ou itérative
(boucles)
Rappels
Attention aux boucles infinies
1) Une des instructions du corps de la boucle (TantQue et Répéter) doit absolument
changer la valeur logique de la condition (après un certain nombre
d'itérations), sinon le programme tourne indéfiniment.
2) Il faut éviter de modifier la valeur du compteur (et de finale) à l'intérieur de la
boucle. En effet, une telle action présente le risque d'aboutir à une boucle
infinie.
# si le nombre est
trouvé
print("Nombr 63
e trouvé !")
break
# sortir de la
boucle
1 Exercices
Rappels d’application
Exercice
Ecrire un algorithme et un programme en Python qui demande un nombre de
départ, et qui ensuite écrit la table de multiplication de ce nombre, présentée
comme suit (cas où l'utilisateur entre le nombre 7) :
Table de 7 :
•7x1=7
• 7 x 2 = 14
• 7 x 3 = 21
•…
• 7 x 10 = 70
64
1 Exercices
Rappels d’application
Solution
Algorithme
Table_Multiplication
Variables b, i : Entiers nombre = int(input("Entrez un nombre : "))
Début print("Table de multiplication de", nombre, ":")
Ecrire (“Entrer une
valeur : “) Lire (b) for i in range(1, 11):
Pour i allant de 1 à 10 resultat = nombre * i
print(nombre, "x", i,
faire Ecrire (b, “X”, i, "=", resultat)
“=”, b * i) Ecrire (“\
n”)
FinPour
Fin
65