MIP- Cours Algorithmique Programmation PYTHON Partie 2 Programmation Python
MIP- Cours Algorithmique Programmation PYTHON Partie 2 Programmation Python
&
Programmation en Python
de
l’algorithmique vers python
02/12/2023 2
PLAN DETAILLE DU COURS
Partie I. Initiation à l’algorithmique
02/12/2023 4
Rappel
Qu’est-ce que la programmation?
Exemple :
C, Python, C#, C++, Java, PHP...
Rappel
▪Langage compilée
▪Langage interprété
▪Langage de bas niveau
▪Langage de haut niveau
Rappel
➢ Traduction en binaire du code source génère un programme exécutable par l’ordinateur, Ce travail est
réalisé par un programme spécialisé appelé compilateur.
Rappel
❑ Interpréteur Python, c'est l'application avec laquelle vous allez exécuter votre script Python.
❑ Langage interprété, c'est donc tout d'abord un langage qui a besoin d'un interpréteur pour
fonctionner.
Rappel
11
Introduction
Qu’est-ce que Python?
Langage de programmation
Créé par Guido van Rossum en 1991
Haut niveau
Interprété
Histoire de Python
Février 1991
Publication de la 1ère
version
13
02/12/2023
Introduction
Pourquoi devriez-vous apprendre Python?
Installable facilement
Portable
A quoi sert la portabilité de Python?
➢ Python est portable, non seulement sur les différentes variantes d'Unix, mais aussi
sur les OS propriétaires: MacOS, BeOS, NeXTStep, MS-DOS et les différentes
variantes de Windows.
Caractéristiques clés de Python
langage de
Haut niveau interprété
02/12/2023 16
Domaines d’applications
Image processing
Video processing 14
Classement IEEE de python en 2022
02/12/2023 18
Entreprises utilisent Python
02/12/2023 19
Principales bibliothéques
02/12/2023 20
Installation
➢ Lien d’installation :
https://docs.anaconda.com/anaconda/install/windows/
Installation
ANACONDA
➢ Anaconda est une distribution Python qui intègre la plateforme Jupyter pour
faciliter l'écriture, l'exécution et la visualisation de code Python.
➢ Notebook Jupyter permettent d'interagir avec le code pas à pas, en exécutant des
cellules individuelles à la fois.
➢ Cela permet aux utilisateurs d'observer les résultats de chaque instruction en
temps réel, ce qui en fait un outil très utile pour le prototypage rapide,
l'exploration de données et la communication des résultats.
PLAN DETAILLE DU COURS
Partie I. Initiation à l’algorithmique
24
02/12/2023 24
Les variables:
02/12/2023 25
Nom de variables
Attention!
• N'utilisez jamais de symboles spéciaux tels que !, @, #, $,
%, etc.
• Ne commencez pas un nom de variable par un chiffre.
• Python est sensible à la casse (différencier entre majuscule et
minuscule (VAR est différente de var)
Variables et Constantes
❖ Type de variable
• entier (python:int) pour manipuler des entiers
• réel (python: float) pour manipuler des nombres réels
• booléen (python: bool) pour manipuler des valeurs booléennes
• Caractère (python: str) pour manipuler des caractères alphabétiques ou
numériques. On peut manipuler des chaînes de caractères permettant de
représenter des mots ou des phrases.
02/12/2023 27
Les opérateurs
Les opérateurs
Les opérateurs de
arithmétiques
comparaison Les opérateurs logiques
+ Addition
== L’égalité
And renvoie True si les
- Soustraction deux opérandes
<= Inférieur ou
sont True.
* Multiplicatio égale
n >= Supérieur ou Or renvoie True si au
/ Division égale moins un des deux
> Supérieur opérandes est
% Modulo strictement True.
< Inférieur Not renvoie l'inverse
** Puissance
strictement d'une valeur
!= La différence booléenne.
+= Addition et
afféctation
02/12/2023 28
Les opérateurs
02/12/2023 29
Déclaration des variables:
Exemple:
Syntaxe:
02/12/2023 30
Remarque :
Notez bien:
On peut utiliser les
formes courtes pour
simplifier des
opérations
02/12/2023 31
Types de Variables
Fonction « type(x) »:
• Pour vérifier le type d'une variable nommée x, tapez simplement la fonction : type(x).
• Vous allez voir plus tard ce que signifie le mot class.
PLAN DETAILLE DU COURS
Partie I. Initiation à l’algorithmique
02/12/2023 34
Initialisation, Affectation et Comparaison
• Affectations simultanées
• comparaison :
B== 10 ➔ égalité (pour des nombres ou des chaînes). Il s’agit de l’opérateur de
comparaison
02/12/2023 35
Réaffecter une valeur à une variable :
a=3
a = ‘’welcome ’’
Print (a) ➔ welcome
02/12/2023 36
Affectation de plusieurs valeurs à plusieurs variables
• Si on veut assigner plusieurs valeurs à plusieurs variables, on peut écrire :
02/12/2023 37
Type de Variables
La fonction type(x):
• Pour vérifier le type d'une variable nommée x, tapez simplement la fonction
:type(x). Vous verrez plus tard ce que signifie le mot class.
02/12/2023 38
Commentaires
Syntaxe
02/12/2023 40
Les instructions d’Entrée /Sortie
L’instruction de sortie (affichage à l’écran)
Exemple :
Affichage :
02/12/2023 41
Les instructions d’Entrée /Sortie
L’instruction de sortie (affichage à l’écran)
Remarque:
02/12/2023 42
Les instructions d’Entrée /Sortie
L’instruction d’entre
La fonction input() en Python permet à l'utilisateur de saisir des données à
partir du clavier et renvoie ces données sous forme de chaîne de caractères.
En Python, la fonction d'entrée est utilisée pour demander à l'utilisateur
d'entrer une valeur. Celui-ci va être capturé sous forme de chaîne.
Synthaxe :
02/12/2023 43
Exemples : Saisie utilisateur
Exemple :
Syntaxe:
Affichage :
02/12/2023 44
Ecriture formatée
Permet d'afficher des variables avec un certain format, par
exemple justifiées à gauche ou à droite, ou encore avec un
certain nombre de décimales pour les floats.
02/12/2023 45
Ecriture formatée
f-strings permettent une meilleure organisation de
l'affichage des variables.
Exemple :
Attention:
02/12/2023 46
Ecriture formatée
Remarque:
il est possible de mettre entre les accolades des valeurs
numériques ou des chaînes de caractères :
02/12/2023 47
Ecriture formatée
Les décimaux :
Nous pouvons spécifier dans les accolades {} le format qui vous intéresse.
Dans le cas présent, vous voulez formater un float pour l'afficher avec deux
puis trois décimales :
>>> Var = 22 / 7
>>> print(f"La valeur de Pi est {Var:.2f}")
La valeur de Pi est 3.14
>>> print(f"La valeur de Pi est {Var:.3f}")
La valeur de Pi est 3.142
02/12/2023 48
Ecriture formatée
Les entiers :
>>> nb = 230
>>> print(f"Ce nombre est {nb:d} ")
Ce nombre est 230
02/12/2023 49
Ecriture formatée
Il est possible de préciser sur combien de caractères un résultat est écrit
et comment se fait l'alignement (à gauche, à droite ou centré).
02/12/2023 50
Ecriture formatée
Il est possible de préciser sur combien de caractères un résultat est écrit
et comment se fait l'alignement (à gauche, à droite ou centré).
02/12/2023 51
Ecriture formatée
Il est possible d'indiquer le caractère par lequel vous allez remplir lors des
alignements (l'espace est le caractère par défaut).
02/12/2023 52
Ecriture formatée
Autre exemple
02/12/2023 53
Ecriture formatée
Attention :
Si on veut afficher des accolades littérales avec les f-strings, il faut les
doubler pour échapper au formatage
02/12/2023 54
Ecriture formatée
Remarque :
f-string est indépendante de la fonction print(). Si on donne une f-string à
la fonction print(), Python évalue d'abord la f-string et c'est la chaîne de
caractères qui en résulte qui est affichée à l'écran.
02/12/2023 55
Ecriture formatée
Imbrication
Exemple
02/12/2023 56
Ecriture formatée
L'opérateur %
L'opérateur modulo (%) a été le premier outil de formatage de chaînes
de caractères en Python et fait partie du langage depuis le début. Voici à
quoi ressemble l'utilisation de cet opérateur dans la pratique :
02/12/2023 57
Ecriture formatée
L'opérateur %, conversion spécifiques
02/12/2023 58
Ecriture formatée
L'opérateur %
02/12/2023 59
Ecriture formatée
La méthode .format
Depuis la version 2.7 de Python, La méthode str.format() est une
amélioration par rapport à l'opérateur % car elle corrige quelques
problèmes et prend en charge le mini-langage de formatage des
chaînes. Avec .format(), les accolades délimitent les champs de
remplacement.
>>> x = 40
>>> nom = « SAEL"
>>> print("{} a {} ans".format(nom, x))
SAEL a 40 ans
• les accolades vides {} précisent l'endroit où le contenu de la variable doit être
inséré.
•Juste après la chaîne de caractères, l'instruction .format(nom, x) fournit la liste
des variables à insérer, d'abord la variable nom puis la variable x.
•La méthode .format() agit sur la chaîne de caractères à laquelle elle est attachée
par le point.
02/12/2023 60
Ecriture formatée
Remarque :
Tout ce que nous avons vu avec les f-strings sur la manière de formatter
l'affichage d'une variable (après les : au sein des accolades) est
identique avec la méthode .format().
Problème :
02/12/2023 62
Conversion de type(casting)
• Dans certains cas, nous aurons besoin de convertir notre variable d'un
type à un autre.
• En programmation, on est souvent amené à convertir les types, c'est-à-
dire passer d'un type numérique à une chaîne de caractères ou vice-
versa. En Python, rien de plus simple avec les fonctions int(),
float(),str(),bool().
02/12/2023 63
Conversion de type(casting)
Remarque :
Il est important de noter que toutes ces fonctions de cast ne sont pas toujours
possibles. Par exemple, on ne peut pas convertir une chaîne de caractères en
nombre entier si la chaîne ne représente pas un nombre valide. Dans ce cas,
Python lèvera une exception ValueError.
02/12/2023 64
Conversion de type(casting)
Les casting valident
02/12/2023 65
Exercice
Écrivez un programme Python qui permet à l'utilisateur de saisir trois
nombres (n1, n2, n3). Ensuite, calculez la moyenne de ces trois nombres et
affichez le résultat.
Instructions :
Demandez à l'utilisateur de saisir le premier nombre (n1).
Demandez à l'utilisateur de saisir le deuxième nombre (n2).
Demandez à l'utilisateur de saisir le troisième nombre (n3).
Calculez la moyenne en ajoutant les trois nombres et en divisant par 3.
Affichez le résultat de la moyenne.
02/12/2023 66
Solution
# Demandez à l'utilisateur de saisir les trois nombres
n1 = float(input("Entrez le premier nombre : "))
n2 = float(input("Entrez le deuxième nombre : "))
n3 = float(input("Entrez le troisième nombre : "))
# Calculez la moyenne
moyenne = (n1 + n2 + n3) / 3
# Affichez la moyenne
print("La moyenne des trois nombres est :", moyenne)
02/12/2023 67
Chaîne de caractère : accès par index
fifth_letter= "MONTY"[4]
Print(fifth_letter)
Y
02/12/2023 68
Les fonctions intégrées
Nous pouvons changer les chaine de caractères en utilisant les méthodes
de string qui permettent d’effectuer des tâches sur les chaînes .
Nous allons nous restreindre actuellement à :
len() : pour obtenir le nombre de caractère
Exemple :
02/12/2023 69
Les fonctions intégrées
lower() : écrire en minuscule
upper() : écrire en majuscule
Exemple :
02/12/2023 70
Les fonctions intégrées
La méthode str() transforme les nonchaînes en chaînes! Par exemple:
Exemple :
02/12/2023 71
Concaténation des String
02/12/2023 72
Remarques
Les fonctions intégrées au langage sont relativement peu
nombreuses: ce sont seulement celles qui sont
susceptibles d'être utilisées très fréquemment.
02/12/2023 74
Remarque (importation)
Il est possible d'importer uniquement certaines variables
ou fonctions d'un module donné.
Syntaxe:
Exemple
02/12/2023 77
La structure if-else
sont des instructions qui permettent à un programme d'exécuter
certaines actions si une condition spécifiée est satisfaite (vraie), et
Exemple :
d'exécuter d'autres actions alternatives si la condition n'est pas
satisfaite (fausse).
Syntaxe:
Exemple :
02/12/2023 78
Exercices
Ecrire un programme python permettant de résoudre une équation de
la forme ax+b=0.
02/12/2023 79
Exercices
Ecrire un algorithme/programme qui permet d'imprimer le résultat d'un
étudiant à un module sachant que ce module est sanctionné par une note
d'oral de coefficient 1 et une note d'écrit de coefficient 2. La moyenne
obtenue doit être supérieure ou égale à 10 pour valider le
module.
02/12/2023 80
La structure if imbriqué
Sont des structures conditionnelles dans lesquelles un "if" est placé
à l'intérieur d'un autre "if". Cela permet d'évaluer plusieurs
conditions successivement et d'exécuter Exemple :
différents blocs de code en
fonction des résultats des différentes conditions.
Syntaxe:
02/12/2023 81
La structure if imbriqué
Exemple :
02/12/2023 82
Exercices
02/12/2023 83
Exercices
02/12/2023 84
Exercice
Ecrire un algorithme/ programme qui permet de lire 2
nombres A et B, puis afficher le plus grand des deux ou le
cas où les 2 nombres sont égaux.
02/12/2023 85
Exercice
Ecrire un algorithme/ programme qui permet de lire 2
nombres A et B, puis afficher le plus grand des deux ou le
cas où les 2 nombres sont égaux.
A=float(input("entrer un nombre:"));
B=float(input("entrer un nombre:"));
D=A-B
if D>0:
print("A est le plus grand")
elif D==0:
print("A=B")
else:
print("B est le plus grand")
02/12/2023 86
La boucle for
La boucle for permet d'itérer sur une séquence Exemple (liste, : tuple,
dictionnaire, chaîne de caractères, etc.) et d'exécuter un bloc de code
pour chaque élément de la séquence.
Syntaxe:
Astuce: il est
Affichage : possible d’obtenir le
même résultat sans
donner la liste des
valeurs, mais en
87 utilisant la fonction
02/12/2023 87
range()
La boucle for
Boucle « for »:
❖ Fonction range():
• Elle permet de créer une séquence d'entiers et la séquence
peut être bouclée.
• Par défaut le pas est 1 et on commence à 0.
• Toujours, la valeur finale n'est pas incluse.
• L’instruction range (a,b,pas) permet de créer une liste L
croissante ou décroissante d’entiers successifs .
Syntaxe
Example:
10
for i in range(10,20,3): D onne à 13
print (i); l’exécution: 16
else: 19
print("Sortie de la boucle avec i=",i); Sortie de la boucle avec
i= 19
02/12/2023 88
Exercice
Ecrire un programme permettant de calculer le factoriel
d’un nombre entier n.
02/12/2023 89
Exercice
Ecrire un programme permettant de calculer le factoriel
d’un nombre entier n.
n=input("donnez la valeur de n")
fact=1
for i in range(1,int(n)+1,1):
fact=fact*i
02/12/2023 90
Exercice
Ecrire un programme permettant de calculer la valeur de
np, avec n et p des entiers positifs.
02/12/2023 91
Exercice
Ecrire un programme permettant de calculer la valeur de
np, avec n et p des entiers positifs.
02/12/2023 92
La boucle while
Syntaxe:
02/12/2023 93
Instructions répétitives
Boucle « while »:
02/12/2023 94
Exercice
Ecrire un programme permettant de lire une valeur
entière N (positive ou négative) et qui fournit le nombre
de chiffres de N comme résultat.
02/12/2023 95
Exercice
Ecrire un programme permettant de lire une valeur
entière N (positive ou négative) et qui fournit le nombre
de chiffres de N comme résultat.
02/12/2023 96
Exercice
Ecrire un algorithme qui demande un nombre de
départ, et qui calcule sa factorielle. (en utilisant for
puis while)
NB : la factorielle de 8, notée 8 !, vaut
1x2x3x4x5x6x7x8
02/12/2023 97
Boucle for
02/12/2023 98
Boucle while
02/12/2023 99
Instruction « break » et « continue »
• En Python, Les instructions break et continue peuvent modifier le flux
d’une boucle normale.
• Les boucles parcourent un bloc de code jusqu’à ce que la condition soit
fausse, mais nous souhaitons parfois mettre fin à l’itération en cours ou
même à la totalité de la boucle sans vérifier la condition.
02/12/2023 100
Instruction « break » et « continue »
Instruction « break » :
Résultat
Résultat
02/12/2023 101
Instruction « break » et « continue »
Instruction « continue » :
continue est utilisé pour ignorer le bloc actuel et revenir à
l’instruction
while/for.
02/12/2023 102
Exercice
1 Ecrire un programme python qui propose une boucle
for pour afficher les chiffres de 1 à 10
02/12/2023 103
Exercice
1 Ecrire un programme python qui propose une boucle
for pour afficher les chiffres de 0 à 10
for i in range(10):
print(i)
2 Placez une instruction break dans de manière à ce
qu'elle n'imprime que de 0 à 7 (7 inclus).
for i in range(10):
print(i)
if i == 7:
break
02/12/2023 104
Exercice
Pour le même exercice précédent, Ajoutez une instruction
if et une instruction continue à la boucle pour qu'elle
saute lorsque l'itérateur est égal à 7
for i in range(10):
if i == 7:
continue
print(i)
02/12/2023 105
PLAN DETAILLE DU COURS
Partie I. Initiation à l’algorithmique
1 Déclarer un tableau
from array import array
X = array('i') # tableau d’entiers (int)
X = array(‘f') # tableau de réels (float)
7. inverser un tableau:
X.reverse(); print(X)
➔array('i', [0, 3, 2, 1])
02/12/2023 109
Les listes
Définition d'une liste
C’est une collection ordonnée et modifiable d’éléments éventuellement
hétérogènes.
>>> nombres = [5, 38, 10, 25]
>>> mots = ["fromage", "confiture", "chocolat"]
>>> L= [5000, "Big Data", 3.1416, ["Bon", "Jour", 1947]]
110
Les listes
Accès aux éléments d’une
Pour accéder aux éléments d'une liste, on utilise les mêmes méthodes
(index, découpage en tranches)
112
Les listes sont des objets
Sous Python, les listes sont des objets pour lesquels on peut appliquer des
méthodes (fonctions) particulièrement efficaces. En voici quelques-unes :
113
>>> nombres.index(17) # retrouver l'index d'un élément
4
>>> nombres.remove(38) # enlever (effacer) un élément
>>> nombres
[12, 72, 25, 17, 10]
114
Insertion d'un ou plusieurs éléments n'importe où dans une liste
>>> mots = ['jambon', 'fromage', 'confiture', 'chocolat’]
115
Suppression/remplacement d'éléments
116
Création d'une liste de nombres à l'aide de la fonction range()
>>> L=list(range(10))
>>> L
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(5,13))
[5, 6, 7, 8, 9, 10, 11, 12]
>>> list(range(3,16,3))
[3, 6, 9, 12, 15]
117
Parcours d'une liste à l'aide de for, range() et len()
L'instruction for est l'instruction idéale pour parcourir une liste :
>>> prov = ['La','raison','du','plus','fort','est','toujours','la','meilleure']
>>> for mot in prov:
... print(mot, end =' ')
10 100 1000
13 169 2197
16 256 4096
118
Une liste en mode compréhension :
119
Opérations sur les listes
>>> fruits * 3
['orange', 'citron', 'orange', 'citron', 'orange', 'citron’]
Supposons par exemple que vous voulez créer une liste B qui contient le
même nombre d'éléments qu'une autre liste A. Vous pouvez obtenir ce
résultat de différentes manières, l'une des plus simples consiste à effectuer :
B = [0]*len(A).
>>>'orange‘ in fruits
True
>>>len(fruits)
2
121
L.index(x,a,b) retourne la position de la première occurrence de x dans la
liste L entre les deux positions a et b. si b n’est pas donné la recherche
s’éffectue de la position a à la fin.
>>> T=[6,4,8,4,9,4,7,4,9]
>>> T.remove(T[3])
>>> T
[6, 8, 4, 9, 4, 7, 4, 9]
>>> del(T[2])
>>> T
[6, 8, 9, 4, 7, 4, 9]
123
la méthode pop() prend en argument l'indice de l'élément à supprimer de
la liste et retourne cet élément. Si aucun indice n'est spécifié, par défaut
pop() supprime et retourne le dernier élément de la liste.
>>> a=T.pop()
>>> a
9
>>> T
[6, 8, 9, 4, 7, 4]
>>> b=T.pop(-2)
>>> T
[6, 8, 9, 4, 4]
>>> b=T.pop(1)
>>> b
8
124
Insérer dans une liste
>>> T=[6,4,8,4,9,4,7,4,9]
>>> T.append([1,2,3]) append ajoute un élément dans la liste
>>> T
[6, 4, 8, 4, 9, 4, 7, 4, 9, [1, 2, 3]]
125
Bibliothèques mathématiques: Numpy
Les tableaux (arrays) sont des objets fournis par le module numpy.
Contrairement aux listes ils contiennent des objets de types identiques,
comme des flottants, des complexes ou des entiers.
L’instruction : >>> from numpy import * permet de charger en
mémoire toute la bibliothèque numpy
>>> T = array([0.1, 3, -1, 4, 6.7]) permet de convertir la liste [0.1, 3, -1, 4,
6.7] en un tableau de type array.
>>> M=array([[0.4, 0.9, 4],[-1.5, 2, 1./3]]) permet de construire la
matrice
[0.4, 0.9, 4]
[-1.5, 2, 1./3] à partir des deux listes [0.4, 0.9, 4] et [-1.5, 2, 1./3].