Algorithmique et progrfgfgfgfgfgfgffggfammation PYTHON.pptx
1.
Intitulé du cours:Algorithme et
programmation`PYTHON`
Année de formation 2024/2025
2.
Plan du cours
Objectifsdu module
Introduction
1. Introduction au langage python
2. Structures de contrôle
3. Les fonctions
4. Types de données
5. Gestion de fichiers
2
3.
Objectifs du module
3
permet d'écrire des scripts(des instructions pour des programmes informatiques)
développe la logique et la résolution de problèmes
des compétences précieuses dans de nombreux domaines,
pas seulement en programmation.
4.
Introduction
4
Python est unlangage de programmation (au même titre que le C, C++, fortran, java . . .),
développé en 1989. Ses principales caractéristiques sont les suivantes :
«open-source» : son utilisation est gratuite et les fichiers sources sont disponibles et modifiables .
simple et très lisible.
doté d’une bibliothèque de base très fournie .
importante quantité de bibliothèques disponibles : pour le calcul scientifique, les statistiques, les
bases de données, la visualisation .
grande portabilité : indépendant vis à vis du système d’exploitation (linux, windows, MacOS).
orienté objet.
typage dynamique : le typage (association à une variable de son type et allocation zone
mémoire en conséquence).
Chapitre I:Introduction aulangage python.
6
Données et variables
Variable? : c’est une référence désignant une adresse mémoire; c’est-à-dire un emplacement précis
dans la mémoire vive (RAM).
A cet emplacement est stockée une valeur bien déterminée.
Exemple:
A = 5
7.
Chapitre I:Introduction aulangage python.
7
Noms de variables :
L'ensemble des symboles utilisables est donc:
• {0,1,2,...,9,A,B,...,Z,a,b,...,z}
• Les lettres accentuées
• Les caractères spéciaux tels que $, #, @, etc. sont interdits, à l'exception du caractère _
(underscore).
• Le premier caractère doit être une lettre (ou le symbole '_’)
• Python distingue les majuscules et les minuscules, ainsi: NUM,
Num et num sont des variables différentes.
Mots réservés: (à ne pas utiliser pour nommer des variables)
Tous les mots-clés sauf True, False et None sont en minuscules
8.
Chapitre I:Introduction aulangage python.
8
Types de données:
• Un type de données définit un ensemble de valeurs ainsi que des opérations pouvant être
effectuées sur ces valeurs.
• Les types de bases sont:
Entiers int
réel float
Chaîne de caractères str
Déclaration Affectation:
• nom_variable = expression
Exemple: a = 5
nom = " Foulen "
Nous ne déclarons pas le type de la variable à l’avance:
int a = 5
9.
Chapitre I:Introduction aulangage python.
9
Typage dynamique:
• Python détecte automatiquement le type de la variable
Affectations multiples:
• var1, var2, var3, ... varN = exp1, exp2, exp3, ... expN
Exemple: a , nom , b = 2 , "Foulen" , 3.5
10.
Chapitre I:Introduction aulangage python.
10
Les instructions:
• Si une instruction s'étende sur plusieurs lignes on ajoute le caractère de continuation de ligne () à la fin:
• Ceci est une continuation de ligne explicite. En Python, la continuation de la ligne est impliquée dans les
parenthèses (), les crochets [] et les accolades {}.
• Nous pourrions également mettre plusieurs instructions sur une seule ligne en utilisant des points-virgules,
comme suit:
• Pas de ; à la fin d'une instruction
11.
Chapitre I:Introduction aulangage python.
11
Les commentaires en Python:
• En Python, nous utilisons le symbole dièse(#) pour commencer à écrire un commentaire.
• Commentaires multilignes:
• Ou bien, une autre façon de faire consiste à utiliser des guillemets triples, soit ''' ou """.
Ces triples guillemets sont généralement utilisés pour les chaînes multilignes.
12.
Chapitre I:Introduction aulangage python.
12
Fonction print() :
• La façon la plus simple de produire la sortie Exemple:
a = 5 print ( a )
print ("Votre
moyenne est :
" , moy )
Fonction input() :
Nous pourrions vouloir prendre
l’information de l’utilisateur:
• Ici, la valeur entrée 5 est une chaîne, pas un nombre. Pour convertir cela en
un nombre, nous pouvons utiliser les fonctions int() ou float().
13.
Chapitre 2. Structuresde contrôle.
13
Les opérateurs en python
• Opérateurs arithmétiques (+ ,- ,* , / , % , // , ** )
• Opérateurs relationnels (== , != , > , < , >= et <=)
• Opérateurs logiques (and, or et not)
• Opérateurs d'affectation (=, +=, -=, *=, etc)
• Opérateurs spéciaux (is, is not, in, not in)
Instruction composée : en-tête, double point, bloc d'instructions indenté
• Les blocs d'instructions sont délimités par l'indentation (Toutes les lignes d'un même bloc
doivent être indentées exactement de la même manière c-à-d décalés vers la droite d'un
même nombre d'espaces).
14.
Chapitre 2. Structuresde contrôle.
14
Exercice 1:
Ecrire un programme en langage Python qui demande à l’utilisateur de saisir deux nombres a et b et de
lui
Affiche leur somme a+b
Exercice 2:
Ecrire un programme en langage Python qui affiche les 100 premiers nombres entier
Exercice 3:
Ecrire un programme en langage Python qui demande à l’utilisateur de saisir son nombre est pair ou
impair
Exercice 4:
Nous allons écrire un programme python qui, à partir du numéro d’un mois, permet d’afficher la
saison.
Les mois sont numérotés de 1 à 12 en commençant par janvier.
Série d’exercice.
15.
Chapitre 2. Structuresde contrôle.
15
Exercice 4:
Ecrire un programme en langage Python qui demande à l’utilisateur de saisir un nombre entier n et de
affiche si ce nombre est premier ou non
Exercice 5:
Ecrire un programme en langage Python qui permet de parcourir et afficher les caractères d’une
variable du type chaine de caractères
Exemple pour s= « Python »
Le programme affiche les caractères :
P
Y
T
H
O
N
16.
Chapitre 2. Structuresde contrôle.
16
Les instructions if-else:
• if simple:
• if-else:
• if-elif-else:
Chapitre 2. Structuresde contrôle.
20
Les instructions répétitives – Les boucles:
Boucle while (Tant que):
• En python, la boucle while est utilisée pour exécuter un bloc d'instructions à plusieurs
reprises jusqu'à ce qu'une condition donnée soit remplie. Et lorsque la condition devient
fausse, la ligne immédiatement après la boucle dans le programme est exécutée.
• Syntaxe:
• Exemple:
21.
Chapitre 2. Structuresde contrôle.
21
Les instructions répétitives – Les boucles:
Boucle for..in:
• la boucle for est utilisée pour les parcours séquentiels. Par exemple: parcourir une liste, une
chaîne, un tableau, etc.
• En Python, il n’existe pas de style for(i = 0; i < n; i++).
• Syntaxe:
• sequence ça peux être Range, List, Tuple, Dictionnaire, une chaîne de caractères ou un
fichier.
• Le cas de range():
22.
2. Structures decontrôle
22
Les instructions répétitives – Les boucles:
• Boucles imbriquées:
• Python permet d’utiliser une boucle dans une autre boucle (boucles imbriquées).
• Syntaxe:
Exemple
23.
2. Structures decontrôle
23
Instructions de contrôle de boucle:
• Les instructions de contrôle de boucle modifient l'exécution normale de la séquence.
• Instruction continue : elle renvoie le contrôle au début de la boucle.
• Instruction break : Il termine la boucle courante et reprend l'exécution à la prochaine instruction après
la boucle
24.
2. Structures decontrôle
24
Exercices:
1- Ecrire un programme python permettant d’afficher la factorielle d’un entier. On rappelle que
n!=1*2*3*…. *n-1*n avec 0!=1.
2- Ecrire un programme python Ecrire un programme python permettant de trouver et d’afficher les
nombres cubiques de 3 chiffres. Un nombre est dit cubique s’il est égal à la somme des cubes de ses
chiffres (153 est cubique car 153 = 1³ + 5³ + 3³).
3- Calculez par multiplications successives XN de deux entiers naturels X et N entrés au clavier. (Sans
utiliser la fonction pow(X, N)).
Discuter tous les cas.
25.
3. Les fonctions
25
Définition:
•L'un des concepts les plus importants en programmation est celui de fonction
• Les fonctions permettent en effet de décomposer un programme complexe en une série de sous-
programme plus simple.
• Lorsqu’une tâche doit être réalisée plusieurs fois par un programme avec seulement des
paramètres différents, on peut l’isoler au sein d’une fonction.
• D'autre part, les fonctions sont réutilisables.
Syntaxe:
Sans indiquer les types des paramètres
26.
3. Les fonctions
26
Notezbien les parenthèses, les deux-points, et l’indentation du bloc d’instructions qui suit la ligne
d’en-tête (c’est ce bloc d’instructions qui constitue le corps de la fonction proprement dite).Après la
définition de la fonction, on trouve le programme principal qui débute par l’instruction
print("bonjour"). Il y a ensuite au sein du programme principal, l’appel de la fonction grâce à table7().
Nous pouvons maintenant réutiliser cette fonction à plusieurs reprises, autant de fois que nous le
souhaitons.
Exemple :
27.
3. Les fonctions
27
Nouspouvons également l’incorporer dans la définition d’une autre fonction.
Exemple:
3. Les fonctions
29
Améliorerla fonction table afin de définir le début et la fin de la table de multiplication:
Fonctioan avec plusieurs paramètres:
Remarque: il faut respecter l'ordre des paramètres.
30.
3. Les fonctions
30
•"q" est une variable globale, accessible même à l'intérieur des fonctions, mais non modifiable.
• On a deux variables "p", l'une est globale et l'autre locale à la fonction.
• On ne peut pas appeler une variable locale d'une fonction dans un programme ou dans une autre
fonction.
Variables locales, variables globales:
31.
3. Les fonctions
31
Pourrendre une variable modifiable à l'intérieur des fonctions, on doit ajouter l'instruction global
Variables locales, variables globales:
32.
3. Les fonctions
32
•La seule différence entre fonction et procédure est que la fonction retourne une ou des données, la
procédure ne retourne rien.
• Il faut commencer par la définition des fonctions puis le programme principale.
Fonctions et procédures:
Passage des paramètres:
33.
3. Les fonctions
33
•Les paramètres sans valeur par défaut doivent précéder les autres dans la liste. La définition suivante
est incorrecte:
Valeurs par défaut pour les paramètres:
34.
3. Les fonctions
34
Onpeut appeler la fonction avec les paramètres pas dans leur ordre, à condition de désigner
nommément les paramètres correspondants.
Arguments avec étiquettes:
35.
3. Les fonctions
35
Exercices:
1-Définir une fonction maximum(n1, n2, n3)qui renvoie le plus grand de 3 nombres
n1, n2 et n3 fournis en arguments.
2- Définir une fonction nomMois(n) qui renvoie le nom de énième mois de
l'année.
3- Modifier la fonction maximum(n1, n2, n3) ci-dessus de manière à ce qu'elle puisse
être appelée avec un, deux ou trois arguments, ou même aucun argument. Utiliser pour
ceux-ci des valeurs par défaut : n1=5, n2=10 et n3=15.
36.
4- Les chaînesde caractères
36
• Indiçage, extraction, longueur:
• -1 l’indice du dernier caractère, -2 l’avant dernier, etc…
• Pour connaître le nombre de caractère (longueur du string):
37.
4- Les chaînesde caractères
37
Extraire une partie d’une chaîne:
Slicing: découpage en tranches
Consiste à indiquer entre crochets les indices correspondant au début et à la fin de la « tranche
»,
Extraction de fragments de chaînes:
• Dans la tranche [n : m], le nième caractère est inclus mais pas
le mième.
• print(nom[3:7]) ? noun
• print (nom[:3]) = print (nom[ 0 :3])
• print (nom[ 3:]) = print (nom[ 3 : len(nom)])
38.
4- Les chaînesde caractères
38
Concaténation, répétition:
Les strings peuvent être concaténées avec + et répétés avec *
Parcours d’une chaîne:
39.
4- Les chaînesde caractères
39
1- Ecrire une fonction trouve(chaine, car) qui devra retrouver l'index correspondant à un
caractère donné.
2- Ecrire une fonction compteCar(chaine, car) qui compte le nombre d'occurrence d'un
caractère donné dans une chaîne. Ainsi: print(comptCar("ananas au jus", "a")) devra
afficher: 4.
3- Dans un conte américain, huit petits canetons s'appellent respectivement: Jack, Kack, Lack,
Mack, Nack, Oack, Pack et Qack. Ecrivez un petit programme qui génère tous ces nom à partir des
deux chaînes suivantes: prefixes = 'JKLMNOPQ' et suffixe = 'ack'.
4- Ecrire une fonction qui recherche le nombre de mots contenus dans une phrase donnée.
Exercices:
40.
4- Les chaînesde caractères
40
• On peut utiliser in indépendamment de for, pour vérifier si un caractère donné fait partie ou non
d’une chaîne
Appartenance d’un caractère à une chaîne:
Les chaînes sont non modifiables:
la 2éme ligne
Exercice:
• Ecrivez une fonction estUneMaj() qui renvoie vrai si l'argument transmis est une
majuscule.
41.
4- Les chaînesde caractères
41
Les chaînes sont comparables:
• On peut utiliser les opérateurs de comparaison (<, >, …).
NB: Cela ne fonctionne que pour les mots qui sont entièrement en minuscules ou entièrement en
majuscules, et qui ne comporte aucun caractère accentué.
Accéder à d’autre caractères que ceux du clavier:
• Tous les caractères possèdent leur identifient numérique universel Unicode. Pour y
accéder:
• Ord("A") 65
• Chr(66) 'B'
42.
4- Les chaînesde caractères
42
Les chaînes sont des objets:
Sous python, les chaînes sont des objets, qui ont des méthodes. Les plus utiles sont:
split(): convertit une chaîne en une liste de sous-chaîne. On peut choisir le caractère séparateur.
split() #par défaut le séparateur est l'espace
split(",") #le séparateur est le,
43.
4- Les chaînesde caractères
43
Les chaînes sont des objets:
• join(liste) : rassemble une liste de chaînes en une seule. "séparateur".join(liste)
• find(sch): cherche la position d'une sous-chaîne sch dans la chaîne
• count(sch): compte le nombre d'apparition de sch dans la chaîne
44.
4- Les chaînesde caractères
44
Les chaînes sont des objets:
• lower(): convertir une chaîne en minuscule.
• upper(): convertir une chaîne en majuscule.
• title(): convertir en majuscule l'initiale de chaque mot.
• capitalize(): convertir seulement la première lettre de la chaîne.
• swapcase(): convertir toutes les majuscules en minuscules et vice- versa.
• strip(): enlêve les espaces éventuels au début et à la fin de la chaînes.
• replace(c1,c2): remplace tous les caractères c1 par c2.
• index(car): retrouve l'indice de la première occurrence du car. index("e",5): cherche à partir
de l'indice 5.
• NB: Il existe d'autres fonctions.
45.
4- Les chaînesde caractères
45
Fonctions intégrées:
len(ch): renvoie la longueur de ch.
float(ch): convertir la chaîne ch en un nombre réel.
int(ch)
str(obj): convertir l'objet obj en une chaîne de caractère.
Exercice:
Ecrire une fonction qui compte le nombre de mots contenus dans une phrase.
46.
4- Les chaînesde caractères
46
Formatage des chaînes de caractères:
• Utilisé pour construire une chaîne complexe à partir d'un certain nombre de morceaux.
• 1-
• ou bien
47.
4- Les chaînesde caractères
47
Formatage des chaînes de caractères:
2- Vous pouvez préparer une chaîne contenant l'essentiel du texte invariable, avec des balises
particulières aux endroits (les champs) où vous souhaiter qu'apparaissent des contenus variables.
On applique par la suite la méthode format().
• NB: si les balises {} sont vides, python appliquera la fonction str().
• Les balises peuvent contenir des numéros d'ordres:
48.
4- Les chaînesde caractères
48
Formatage des chaînes de caractères:
3- Formatage à l'ancienne avant la version 3.0.
Elle consiste à formater la chaîne en assemblant deux éléments à l'aide de l'opérateur %.
à gauche de % on trouve la chaîne et à droite entre parenthèse le ou les objets à insérer dans la
chaîne.
49.
5- les listes
49
Créationd'une liste:
• liste = []
• liste = list()
#liste vide
#de même liste vide
• jours = ["Lundi", "Mardi"]
• personne = ['Foulen', 'Tunis', 3100, 28.1]
• liste = [1, 2, 3] #liste d'entiers
• liste= [0] * 10 #liste avec 10 éléments initialisés à 0
Affichage de la liste:
• print(liste)
• print(liste[0])
• print(liste[1])
• print(liste[-1])
#afficher toute la liste.
#afficher le premier élément.
#afficher le deuxième élément.
#afficher le dernier élément.
50.
5- les listes
50
Ajouterdes éléments à la liste:
• append(valeur)
• insert(pos, val)
• extend()
#ajoute la valeur à la fin de la liste.
#insérer val à la position pos.
#ajouter plusieurs valeurs à la fois à la fin.
Liste imbriquée (matrice) ou tableau 2D:
• liste = [[1,2,5,7],[3,7,9,8],[10,0,4,19]]
• liste[1][2] 9
• liste[2][1] 0
51.
5- les listes
51
Supprimerdes éléments de la liste:
• liste.remove(val): supprime la val de la liste.
• del liste[2]: supprime l'élément n°3
• del liste[1:3] : supprime les éléments n°2 et n°3 (indice 1 et 2).
• liste.pop(): supprime et renvoie un élément de la liste, par défaut le dernier
• liste.pop(i): supprime et renvoie l'élément n°(i+1).
52.
5- les listes
52
Techniquede slicing avancé:
Insertion:
mots=['jambon','fromage','confiture','chocolat']
mots[2:2]=["miel"] #insérer l'élément à la position2.
mots[5:5]=['saucisson','Ketchup'] #ajout les deux éléments à pos5
['jambon','fromage',' miel ','confiture','chocolat', 'saucisson' , 'Ketchup']
Suppression / remplacement:
mots[2:5]= [] # [] désigne une liste vide
['jambon','fromage','saucisson' , 'Ketchup']
mots[1:3] = ['salade'] # ['jambon','salade', 'Ketchup']
mots[1:] = ['mayaunaise','poulet','tomate']
['jambon ','mayaunaise','poulet','tomate']
53.
5- les listes
53
Techniquede slicing avancé:
Affichage:
#affiche les trois premiers éléments.
#affiche tous sauf les trois derniers éléments.
#affiche à partir du 3ème position jusqu'à la fin.
#affiche tous avec un pas de 2.
#affiche les éléments dans l'ordre inverse.
print (list[:3])
print (list[: -3])
print (list[2 :])
print (list[ :: 2])
print (list[ :: -1])
Range:
list(range(10))
list(range(5,13))
# [0,1,2,3,4,5,6,7,8,9]
# [5,6,7,8,9,10,11,12]
list(range(10, -10, -3)) #[10, 7, 4, 1, -2, -5, -8]
• for ind in range(len(mots)) :
print ( ind , mots[ ind ] )
54.
5- les listes
54
Opérationsur une liste:
• fruits = ['orange' , 'citron']
legumes = [ 'poireau', 'oignon', 'tomate']
• print (fruits + legumes)
['orange','citron','poireau','oignon','tomate']
• print (fruits * 3)
['orange' , 'citron','orange' , 'citron','orange' , 'citron']
Test d'apparence:
v = 'tomate'
if v in legumes :
print ('OK')
55.
5- les listes
55
•Méthodes:
• sum(list): la somme de tous les éléments
• list.count(val): calcule le nombre d'occurrence de val.
• len(list): la taille de la liste.
• list.index(val): retourne l'index de la 1ère occurrence de val.
• list.index(2) #recherche l'indice de la valeur 2.
list.index(2, 2) #recherche 2 à partir de la position 2.
list.index(2, 2, 7) #recherche 2 dans la plage 2____6
• list.max() et list.min() #renvoie le maximum et le minimum.
• list.reverse() #inverser l'ordre des éléments dans la liste
• list.sort() #Trier la liste par ordre croissant par défaut.
• list.sort(reverse=True) # elle trie par ordre décroissant
• sorted(list) # renvoie une liste et ne modifie pas la liste.
• list.clear() # efface tous les éléments de la liste. devient liste vide.
56.
6-Les fichiers
56
Pourquoi lesfichiers:
• Pour stocker les données de manière permanente (ne pas les perdre), il faut les stocker dans le
fichier et en lire les données.
• En Python, la gestion de fichiers comprend les trois étapes suivantes:
1. Ouvrir un fichier
2. Traiter le fichier, c'est-à-dire effectuer des opérations de lecture ou d'écriture.
3. Fermer le fichier
Ouvrir un fichier?
• ob_fichier = open( nom_fichier, mode, encoding='xxx')
6-Les fichiers
58
Fermeture d'unfichier?
• ob_fichier.close()
• Cette méthode n'est pas totalement sûre. Si une exception se produit lorsque nous effectuons une
opération avec le fichier, le programme se ferme sans fermer le fichier.
Solution:
Ou mieux avec l'instruction with:
• Cela garantit que le fichier est fermé lors de la sortie du bloc à l'intérieur de with.
59.
6-Les fichiers
59
Ecriture dansun fichier?
• write() et print():
• Ou bien:
• N.B: write() doit écrire une chaine dans un fichier texte, donc
• a = 52
• f.write(str(a))
60.
6-Les fichiers
60
Lecture d'unfichier?
• Il faut travailler avec des fichiers existants. Pour tester si un fichier existe ou non, on peut utiliser
la méthode isfile() du module os
• Si le fichier existe, elle renvoie True, sinon False
• seek() pour changer la position du curseur:
• f.seek(8)
• f.seek(0) # début du fichier
• f.tell() # renvoie la position actuelle
6-Les fichiers
62
• Leslignes sont séparées par 'n'. On peut lire un fichier texte ligne par ligne avec la boucle for
• Ou alternativement avec la méthode readline():
• Exercice: Créer une fonction permet de recopier un fichier texte, en omettant toutes les lignes
qui commencent par '#'
6-Les fichiers
64
readlines():
• Renvoieune liste des lignes
• L est une liste contient dans chaque élément une ligne du fichier test.txt
writelines( L ):
• Ecrire une liste de lignes (L) dans le fichier.
65.
6-Les fichiers
65
Exercice 1:
•Considérons que vous avez à votre disposition un fichier texte contenant des phrases de
différentes longueurs. Ecrivez un script qui recherche et affiche la phrase la plus longue.
Exercice 2:
• Ecrivez un script qui compare les contenus de deux fichiers et signale la première
différence rencontrée (l'indice du premier caractère différent).
Exercice 3:
• A partir de deux fichiers préexistants A et B, construisez un fichier C qui contienne
alternativement une ligne de A, une ligne de B, une ligne de A… et ainsi de suite jusqu'à
atteindre la fin de l'un des deux fichiers originaux. Complétez ensuite C avec les
éléments restant sur l'autre.