RÉSUMÉ : ALGORITHMIQUE &
PROGRAMMATION PYTHON
Ce document récapitule les notions vues lors des Séries de TP 1, 2 et 3.
1 BASES DU LANGAGE PYTHON
1.1 Variables et Types de Données
En Python, le type d’une variable est déterminé automatiquement lors de l’affectation (le
typage est dynamique). Il n’est pas nécessaire de déclarer le type d’une variable explicitement.
Types de base :
— int : Entiers (ex : 10, -5)
— float : Réels (ex : 3.14, -0.01)
— str : Chaînes de caractères (ex : "Bonjour")
— bool : Booléens (True ou False)
1.2 Entrées / Sorties et la fonction input()
IMPORTANT
La fonction input() retourne TOUJOURS une chaîne de caractères (str), même si
l’utilisateur tape un nombre. Pour effectuer des calculs, vous devez convertir le résultat.
1 # Lecture d ’ une chaine ( pas de conversion necessaire )
2 nom = input ( " Entrez votre nom : " )
3
4 # Lecture d ’ un entier ( conversion avec int () )
5 age = int ( input ( " Entrez votre age : " ) )
6
7 # Lecture d ’ un reel ( conversion avec float () )
8 moyenne = float ( input ( " Entrez votre moyenne : " ) )
9
10 print ( " Bonjour " , nom , " vous avez " , age , " ans . " )
1.3 Opérateurs
Opérateurs arithmétiques :
— +, -, * : Addition, soustraction, multiplication
— / : Division réelle
— // : Division entière
— % : Modulo (reste de la division)
1
Algorithmique & Programmation Python M. Hamza Boulibya
— ** : Puissance
Opérateurs de comparaison :
— == (égal), != (différent)
— <, >, <=, >=
2 STRUCTURES DE CONTRÔLE
2.1 Les Conditions (if / elif / else)
Les conditions permettent d’exécuter du code différent selon qu’une condition est vraie ou
fausse.
Syntaxe :
— if : Condition principale (Si)
— elif : Autre condition (sinon si)
— else : Condition par défaut (sinon)
L’indentation est obligatoire en Python ! (4 espaces ou 1 tabulation)
Exemple 1 : Vérification d’une note
1 note = 14
2
3 if note >= 10 and note < 12:
4 print ( " Passable " )
5 elif note >= 12 and note < 16:
6 print ( " Bien " )
7 elif note >= 16:
8 print ( " Tres bien " )
9 else :
10 print ( " Non valide " )
Exemple 2 : Parité d’un nombre
1 nombre = int ( input ( " Entrez un nombre : " ) )
2
3 if nombre % 2 == 0:
4 print ( " Le nombre est pair " )
5 else :
6 print ( " Le nombre est impair " )
Opérateurs logiques :
— and (ET) : Les deux conditions doivent être vraies
— or (OU) : Au moins une condition doit être vraie
— not (NON) : Inverse la condition
2.2 Les Boucles
Les boucles permettent de répéter une action plusieurs fois.
2.2.1 Boucle for (Pour)
Utilisée quand on connaît le nombre d’itérations à l’avance ou pour parcourir une séquence.
2
Algorithmique & Programmation Python M. Hamza Boulibya
1 # range ( start , stop , step ) : stop est exclu
2 for i in range (1 , 11) : # De 1 a 10
3 print ( " Iteration " , i )
4
5 for j in range (0 , 20 , 2) : # Nombres pairs de 0 a 18
6 print ( j )
2.2.2 Boucle while (Tant que)
Utilisée quand on ne connaît pas le nombre d’itérations. La boucle continue tant que la
condition est vraie.
1 compteur = 0
2 while compteur < 5:
3 print ( compteur )
4 compteur = compteur + 1
2.2.3 La Boucle infinie (while True)
Structure très courante pour créer des menus ou forcer une saisie correcte. La boucle tourne
indéfiniment jusqu’à ce qu’elle rencontre un break.
1 while True :
2 print ( " 1. Jouer " )
3 print ( " 2. Quitter " )
4 choix = int ( input ( " Votre choix : " ) )
5
6 if choix == 2:
7 print ( " Au revoir ! " )
8 break # Sort de la boucle immediatement
9
10 print ( " On continue ... " )
2.2.4 Utiliser break pour arrêter une recherche
Dès qu’on trouve l’élément cherché, il est inutile de continuer à parcourir le reste du tableau.
1 T = [12 , 5 , 8 , 19 , 4]
2 valeur_cherchee = 8
3 trouve = False
4
5 for val in T :
6 if val == valeur_cherchee :
7 trouve = True
8 break # Arrete la boucle car on a trouve
9
10 if trouve :
11 print ( " Valeur trouvee ! " )
12 else :
13 print ( " Valeur non trouvee " )
3 TABLEAUX (LISTES) ET FONCTIONS
3.1 Les Listes (Tableaux)
En Python, les tableaux dynamiques sont appelés "listes". Une liste (tableau ) peut contenir
des éléments de différents types et sa taille est dynamique.
3
Algorithmique & Programmation Python M. Hamza Boulibya
1 # Declaration
2 T = [] # tableau vide
3 notes = [12 , 15 , 8 , 19] # tableau initialisee
4
5 # Acces aux elements ( indices commencent a 0)
6 x = notes [0] # Premier element (12)
7 n = len ( notes ) # Taille de la liste (4)
8
9 # Methodes principales
10 T . append (5) # Ajoute 5 a la fin de la liste
11 T . insert (0 , 1) # Insere 1 a l ’ index 0
Opérations courantes :
— [Link](x) : Ajoute x à la fin
— [Link](i,x) : Ajoute x à l’index i
— [Link](x) : Supprime la première occurrence de x
— len(liste) : Donne la taille de la liste
3.2 Les 3 Méthodes de Parcours de Tableaux
Il est essentiel de choisir la bonne boucle selon vos besoins.
3.2.1 Méthode A : Par index (range(len(...)))
Utilisez cette méthode si vous avez besoin de modifier le tableau ou si vous avez besoin de
la position (l’indice) de l’élément.
1 T = [10 , 20 , 30]
2 # On veut ajouter 1 a chaque element
3 for i in range ( len ( T ) ) :
4 T[i] = T[i] + 1 # Modification possible grace a l ’ indice i
5 print ( T ) # Affiche [11 , 21 , 31]
3.2.2 Méthode B : Par valeurs directement (for val in ...)
Utilisez cette méthode pour la simple lecture (affichage, calcul de somme). C’est la plus
simple mais elle ne permet pas de modifier le tableau original.
1 T = [10 , 20 , 30]
2 somme = 0
3 for val in T :
4 somme = somme + val
5 print ( " Valeur lue : " , val )
6 print ( " Somme totale : " , somme )
3.2.3 Méthode C : Avec enumerate (enumerate(...))
Utilisez cette méthode si vous avez besoin à la fois de la valeur et de l’indice, mais sans
modifier le tableau (code plus lisible que la méthode A).
1 T = ["a", "b", "c"]
2 for i , val in enumerate ( T ) :
3 print ( " A l ’ indice " , i , " il y a la valeur " , val )
4
Algorithmique & Programmation Python M. Hamza Boulibya
3.3 Les Fonctions
Définition : Une fonction est un bloc de code réutilisable qui effectue une tâche spécifique.
Elle permet d’organiser le code, d’éviter les répétitions et de faciliter la maintenance.
Important à savoir
Une fonction peut :
— Avoir des paramètres (arguments) ou non
— Retourner un résultat avec return ou non
3.3.1 Comment déclarer une fonction :
Cas 1 : Fonction avec paramètres et retour
1 def nom_fonction ( parametre1 , parametre2 ) :
2 # Corps de la fonction
3 resultat = parametre1 + parametre2
4 return resultat # Renvoie le resultat
Cas 2 : Fonction sans paramètres mais avec retour
1 def obtenir_message () :
2 return " Bonjour le monde ! "
Cas 3 : Fonction avec paramètres mais sans retour
1 def afficher_message ( nom ) :
2 print ( " Bonjour " , nom )
3 # Pas de return , la fonction ne renvoie rien
Cas 4 : Fonction sans paramètres et sans retour
1 def afficher_menu () :
2 print ( " === MENU === " )
3 print ( " 1. Option 1 " )
4 print ( " 2. Option 2 " )
5 # Pas de return
3.3.2 Comment appeler une fonction :
1 # Fonction avec retour : on recupere le resultat
2 valeur = nom_fonction (5 , 3)
3 print ( valeur ) # Affiche 8
4
5 # Fonction sans retour : on l ’ appelle juste
6 afficher_message ( " Ali " )
7
8 # Fonction sans parametres
9 message = obtenir_message ()
10 print ( message )
Exemple 1 : Fonction carré
1 def carre ( x ) :
2 res = x * x
3 return res
4
5 # Appel
6 val = carre (5)
7 print ( val ) # Affiche 25
5
Algorithmique & Programmation Python M. Hamza Boulibya
Exemple 2 : Fonction qui calcule la moyenne d’une liste
1 def calculer_moyenne ( notes ) :
2 if len ( notes ) == 0:
3 return 0
4 somme = 0
5 for note in notes :
6 somme = somme + note
7 moyenne = somme / len ( notes )
8 return moyenne
9
10 # Appel
11 liste_notes = [12 , 15 , 8 , 19 , 14]
12 moy = calculer_moyenne ( liste_notes )
13 print ( " La moyenne est : " , moy ) # Affiche 13.6
Exemple 3 : Fonction qui vérifie si un nombre est premier
1 def est_premier ( n ) :
2 if n < 2:
3 return False
4 for i in range (2 , n ) :
5 if n % i == 0:
6 return False
7 return True
8
9 # Appel
10 print ( est_premier (7) ) # Affiche True
11 print ( est_premier (10) ) # Affiche False
4 ALGORITHMES DE TRI
4.1 Introduction aux algorithmes de tri
Les algorithmes de tri sont des Algo qui permettent de réorganiser les éléments d’une liste(tablau)
dans un ordre croissant ou décroissant. Le tri est une opération fondamentale en informatique
car il facilite la recherche, l’analyse et la présentation des données.
Rôle des algorithmes de tri :
— Organiser les données pour faciliter leur exploitation
— Optimiser les recherches (recherche dichotomique nécessite un tableau trié)
— Améliorer la lisibilité et la présentation des résultats
4.2 Tri par Sélection
Principe : Le tri par sélection fonctionne en cherchant répétitivement le plus petit élément
(minimum) dans la partie non triée du tableau, puis en le plaçant au début de cette partie.
Algorithme :
1. Parcourir le tableau de gauche à droite
2. Pour chaque position i, chercher le minimum dans le reste du tableau (de i à la fin)
3. Échanger l’élément à la position i avec le minimum trouvé
4. Répéter jusqu’à la fin du tableau
Implémentation en Python :
6
Algorithmique & Programmation Python M. Hamza Boulibya
1 def tri_selection ( T ) :
2 n = len ( T )
3 for i in range ( n - 1) :
4 # Chercher l ’ indice du minimum dans T [ i : n ]
5 indice_min = i
6 for j in range ( i + 1 , n ) :
7 if T [ j ] < T [ indice_min ]:
8 indice_min = j
9
10 # Echanger T [ i ] avec T [ indice_min ]
11 T [ i ] , T [ indice_min ] = T [ indice_min ] , T [ i ]
12
13 return T
14
15 # Exemple d ’ utilisation
16 liste = [64 , 25 , 12 , 22 , 11]
17 print ( " Liste avant tri : " , liste )
18 tri_selection ( liste )
19 print ( " Liste apres tri : " , liste )
20 # Affiche : [11 , 12 , 22 , 25 , 64]
Bon courage !