Programmation phyton
❖ PARTIE 1--> GENERALITES :
• Informatique : L’informatique est la science qui étudie le traitement
automatique de l’information à l’aide d’algorithmes et de programmes.
➢ Un ordinateur est une machine capable d’exécuter ces algorithmes grâce à son
architecture interne.
• Le modèle de Von Neumann est une architecture informatique qui définit le
fonctionnement des ordinateurs. Il repose sur les éléments suivants :
• Mémoire : Stocke les données et les instructions. [La RAM (mémoire vive) et la mémoire
cache garantissent une exécution rapide, la ROM (mémoire mort) assure le démarrage, la mémoire de
masse stocke les données durablement, la mémoire virtuelle pallie le manque de RAM et les mémoires
internes du processeur optimisent les performances. (La RAM et la mémoire de masse sont les
utilisés pour les algos)]
• Processeur/Unité centrale de traitement (CPU) : Exécute les instructions.
• Bus de communication : Ils sont classés en trois types principaux : bus de
données, bus d'adresses et bus de commande (ou de contrôle). Chacun a
une fonction et une direction spécifiques dans le transfert des informations
entre les composants d'un ordinateur.
Type de Bus Rôle Direction
Bus de données Transporte les données Bidirectionnel
Bus d’adresses Indique l’adresse des données Unidirectionnel (CPU →
mémoire/périphériques)
Bus de commande Transmet les ordres et signaux de contrôle Principalement unidirectionnel
• Périphériques d’entrées/Sorties : Permettent d’interagir avec l’extérieur
(clavier, écran, réseau…).
➢ Circulation de l’Information
Dans un ordinateur, l’information est représentée sous forme binaire (0 et 1). Cette
représentation permet à la machine de comprendre et d’exécuter les commandes. Les
informations circulent sous différentes formes :
• Courant électrique de faible tension dans les circuits électroniques.
• Signal numérique sous forme d’impulsions électriques (0 = absence de tension,
1 = présence de tension).
• Lumière en fibre optique pour les communications rapides.
• Ondes radio pour la transmission sans fil.
1
Exemple : Conversion d’un Nombre Décimal en Binaire : Prenons l’exemple
du nombre 109 en base 10 et convertissons-le en base 2 :
1. 109 ÷ 2 = 54, reste 1
2. 54 ÷ 2 = 27, reste 0
3. 27 ÷ 2 = 13, reste 1
4. 13 ÷ 2 = 6, reste 1
5. 6 ÷ 2 = 3, reste 0
6. 3 ÷ 2 = 1, reste 1
7. 1 ÷ 2 = 0, reste 1
Lecture du bas vers le haut : 109 (base 10) = 1101101 (base 2).
❑ L’algorithme :
I- Définitions d’Algorithme :
• Déf 1 : C’est un pseudo-langage qui a été conçu pour résoudre les
problèmes
• Déf 2 : Ensemble d'instructions conçu pour informatiser la résolution
d'un problème en expliquant à la machine comment l'exécuter, tout en
optimisant les capacités de stockage, la rapidité de traitement et en
respectant les contraintes de temps et d'espace.
2
(N.B: algorithmique : étude des algos)
Structure d’algorithme et schéma de VAN NEUMAN (Vue simplifie à l’ordinateur) :
Titre : Communication Espace des
(Le plus petit résumé possible D’entrée données
Périphériques Mémoire
de l’objectif de l’algorithme).
Partie déclaration : 1,2
d’entrée 1 2
(Communiquer les (Mémoriser
Déclaration des Objets : données d’entrés) les entrés)
- Constantes [id_constant:valeur]
- Variables (simples et/ou
composées) [id_var1, id_var2... :
Communication
type] Résolution
De sortie
- Procédures et Fonctions Processeur
Périphériques
Partie manipulation : 3,4 de sortie 4
(CPU)
Manipulation des Objets : (Afficher les 3
résultats)
Début (Calculer)
Instructions (Actions)
Fin
➢ A travers l'algorithme, l’homme (le programmateur) explique à l’ordinateur toute
la procédure de l’informatisation des problèmes proposés par l'utilisateur.
Remarques :
➢ Dans un algorithme, il est interdit d'utiliser des mots réservés tels que
titre, début, variable, etc., comme noms de variables ou
d'instructions.
➢ Les variables sont dites simples car elles stockent des données
temporaires en mémoire vive (RAM).
➢ Types de variables :
• Entier : Représente un nombre entier appartenant à l’ensemble ℤ
(ex : -1, 0, 5).
• Réel : Représente un nombre réel (ex : -1.0).
• Caractère et chaîne de caractères : Tout texte encadré par des
guillemets, y compris les nombres sous forme textuelle (ex :
"Hello", "123").
• Booléenne : Vrai ou Faux
3
➢ Constante : c’est une donnée dont la valeur ne change pas au cours
de l'exécution du programme (ou relativement stable).
➢ Règles de déclaration :
• Lors de la déclaration, les données doivent être homogènes dans les
instructions (ex : il est interdit d’effectuer une opération comme âge
← âge + nom, car âge est un entier et nom une chaîne de caractères).
• Tout objet utilisé dans les instructions doit être déclaré au
préalable, ce qui implique l'existence d’objets principaux et
d’objets intermédiaires selon leur rôle dans l’algorithme.
II. Types d'Instructions en Algorithmique :
1. Instructions d'entrée et de sortie
a. Écrire (affichage) : Permet d'afficher un message ou une valeur à l'écran.
[Syntaxe : Écrire("msg") \ Écrire(var)\ Écrire(("msg",var)]
b. Lire (saisie) : Permet de saisir une valeur depuis l'utilisateur et de
l'affecter à une variable. [Syntaxe : Lire (var)]
2. Instruction d'affectation
a. Permet d’attribuer une valeur à une variable. [Ex : âge ← 25 (la variable
âge prend la valeur 25)].
3. Instructions de calcul :
➢ La notion de condition est obligatoire pour ces instructions
➢ Condition simple : expression de forme <opérant 1> opérateur <opérant 2>
qui retourne une valeur booléenne
➢ Pour les opérants 1et2, ils peuvent être des valeurs, des variables, des
expressions de calcule, mais ils ne peuvent jamais être des conditions sinon la
condition devient composée
➢ Il y a des opérateurs arithmétique (<+>, <->, <*>, <^> : puissance, La division
</> donne un résultat réel, <DIV> donne la partie entière de la division,
Et <MOD> ou <%> donne le reste de la division (remarque : SI m<n ; m div
n = 0 et m % n=m, [ex : Si aujourd’hui nous sommes vendredi et que nous
avançons de 5000 jrs, quel jour sera-t-on ? On utilise le modulo :
5000 MOD 7 donne le reste, qui correspond à l’avancement dans la
semaine :0→vendredi, 1→samedi, 2→dimanche…jusqu'à 5000 MOD 7]
➢ Pour les opérateurs de calcul (<, >, <>, =, <=, >=)
➢ Les opérateurs logiques : (ET, OU, XOR (vrai lorsqu'une est vrai), NOT
A B A ET B (AND) A OU B (OR) A XOR B NOT (A)
4
FAUX FAUX FAUX FAUX FAUX VRAI
FAUX VRAI FAUX VRAI VRAI VRAI
VRAI FAUX FAUX VRAI VRAI FAUX
VRAI VRAI VRAI VRAI FAUX FAUX
➢ Les opérateurs de concaténation (+, &)
➢ Les opérateurs d’affectation (=, -->)
❖ Instructions conditionnelles (alternatives ou de choix)
a. Permettent d'exécuter un bloc d'instructions en fonction d'une condition.
b. Si...Alors...Sinon (condition simple) [Ex : Si âge >= 18 Alors
Écrire("Majeur")
Sinon
Écrire("Mineur")
FinSi]
❖ Instructions répétitives (boucles ou itérations)
Les instructions répétitives, aussi appelées boucles, permettent d’exécuter un bloc
d’instructions plusieurs fois, soit un nombre déterminé, soit tant qu’une condition est
satisfaite.
➢ Plutôt que d’écrire plusieurs fois la même instruction, on utilise une boucle pour
répéter un traitement de façon automatique.
A. Boucle "Pour...Faire" (Itération avec compteur)
Utilisation : Lorsqu'on connaît à l'avance le nombre exact de répétitions.
Principe : Une variable (compteur) est initialisée à une valeur de départ et est
incrémentée jusqu'à atteindre une valeur finale. [Ex : Afficher les nombres de 1 à 5.
Pour i de 1 à 5 Faire
Écrire(i)
FinPour
Explication :
o i démarre à 1 et augmente de 1 à chaque itération.
o La boucle s’arrête lorsque i = 5.
B. Boucle "Tant que...Faire" (Condition avant exécution)
Utilisation : Lorsqu'on ne connaît pas à l'avance le nombre ex act d'itérations, mais
que l'on sait qu'une condition doit être vraie pour continuer.
5
Principe : La boucle s'exécute tant que la condition est vraie. [Ex : Lire un nombre
jusqu'à ce qu'il soit positif.]
Lire(n)
Tant Que n <= 0 Faire
Écrire ("Veuillez entrer un nombre positif : ")
Lire(n)
FinTantQue
Explication :
o Si l’utilisateur entre -5, la boucle continue.
o Dès qu’un nombre positif est saisi, la boucle s’arrête.
C. Boucle "Répéter...Jusqu'à" (Condition après exécution)
Utilisation : Lorsqu'on veut s’assurer que le bloc d’instructions s’exécute au moins
une fois, puis qu’il s’arrête lorsqu’une condition est satisfaite.
Principe : La boucle s’exécute au moins une fois, puis continue jusqu'à ce qu'une
condition soit vraie. [Exemple : Lire un nombre jusqu'à ce qu'il soit supérieur à 10.]
Répéter
Écrire ("Entrez un nombre supérieur à 10 : ", n)
Jusqu'à n > 10
Explication :
o Même si n > 10 dès le départ, l’instruction Lire(n) sera exécutée au
moins une fois.
Comment Choisir La Bonne Boucle ?
Type de boucle Quand l’utiliser ? Condition évaluée Exécution
minimale
Pour Faire Nombre d'itérations connu Avant la première 0 fois (si début >
itération fin)
Tant que Faire On ne sait pas combien de fois Avant chaque itération 0 fois (si condition
exécuter fausse au départ)
Répéter Jusqu'à On veut exécuter au moins une Après chaque itération Au moins une fois
fois
II. Types d'Instructions en Algorithmique :
1. Définition des Tableaux
Un tableau est une variable composée homogène qui permet de stocker plusieurs
valeurs sous un même nom en mémoire.
6
Remarque :
➢ Une variable composée est une variable qui peut contenir plusieurs variables en
même temps, elle est soit homogène (les données sont de même type) soit
hétérogène (de différent type)
➢ Il se peut que les tableaux soient à une dimension (vecteur, une ligne, une
colonne), de 2 dimensions(matrice), 3dimensions (cube), ou plusieurs
1. Déclaration d’un tableau
Syntaxe générale
Tab NomTableau[Taille] : Type
• NomTableau : Le nom que l’on donne au tableau.
• Taille : Le nombre maximal d’éléments que le tableau peut contenir.
• Type : Le type des valeurs stockées (Entier, Réel, Caractère, etc.).
• Pour un tableau de 2 dimensions, on écrit Tab[N, M] : Type avec [N, M] définit un
tableau de N lignes et M colonnes.
Exemple
Tab Notes[5] : Entier
• Notes est un tableau pouvant stocker 5 nombres entiers.
L’indexation commence généralement à 0 et se termine à Taille-1 (dans cet
exemple, de 0 à 4).
0 1 2 3 4
1er nbr 2eme nbr 3eme nbr 4eme nbr 5eme nbr
2. Remplissage d’un tableau
Le remplissage d’un tableau consiste à y insérer des valeurs. Cela peut se faire
manuellement ou automatiquement à l’aide d’une boucle.
Pour i ← 0 à N faire
Ecrire("Entrez la valeur de Notes[i] : ")
Lire (Notes[i])
FinPour
7
• La boucle parcourt chaque indice (i de 0 à N).
• À chaque itération, une valeur est lue et stockée dans Notes[i].
3. Affichage d’un tableau
Une fois rempli, le tableau peut être affiché élément par élément
Pour i ← 0 à 4 faire
Ecrire ("Notes[ i] =", Notes[i])
FinPour
4. Tri d’un tableau
Le tri d’un tableau consiste à organiser ses éléments dans un ordre précis (croissant ou
décroissant).
• Exemple:
Tab[50] : Entier
Pour i ← 1 à N-1 faire
Pour j ← i+1 à N faire
Si (Tab[j] < Tab[i]) alors
C ← Tab[i]
Tab[i] ← Tab[j]
Tab[j] ← C
FinSi
FinPour
FinPour
• Explication des variables :
Tab [50] : Entier → Déclare un tableau Tab de 50 cases contenant des nombres
entiers.
N → Représente la taille actuelle du tableau (nombre d'éléments remplis).
8
C → Variable temporaire pour échanger les valeurs.
Le principe de ce tri est de :
1. On parcoure le tableau élément par élément.
2. Chaque position i, on la compare avec l’élément à droite (j).
3. Si l'élément(j) est plus petit, on échange les valeurs de i et j.
4. On répète jusqu'à ce que le tableau soit trié.
❑ Python
Python est un langage de programmation polyvalent, interprété et orienté objet, conçu
pour être lisible et facile à apprendre. Il est largement utilisé en développement web, en
analyse de données, en intelligence artificielle et en automatisation.
1. Variables et Types de Données
Les variables sont des conteneurs qui stockent des valeurs. Python est typé
dynamiquement, ce qui signifie qu’il reconnaît automatiquement le type des variables.
Exemple :
A = 10
B = 3.14
nom = "Ali"
2.Opérateurs en Python
• Opérateurs arithmétiques
Opérateur Description Exemple
+ Addition 5+3=8
- Soustraction 10–4=6
* Multiplication 6*2=12
/ Division 9/3 =3.0
// Division entière 10//3=3
% Modulo (reste) 10%3= 1
** Exponentiation 2**3=8
• Opérateurs de comparaison
==, !=, <, >, <=, >=
9
• Opérateurs logiques
and, or, not, xor, &
• Conditions (if )
age = 20
if age < 18:
print("Mineur")
elif age == 18:
print("Juste majeur")
else:
print("Majeur")
• Boucles
▫ Boucle for : Parcourt une séquence.
for i in range(5): *(De 0 à 4)
print(i)
▫ Boucle while : Exécute tant qu'une condition est vraie.
x = 0
while x < 5:
print(x)
x += 1
3. Listes en Python
Les listes sont des collections ordonnées et modifiables.
• Création d'une liste
L = [1, 2, 3, 4, 5]
• Opérations courantes
10
Opération Syntaxe Explication
Ajouter un élément L.append(x) Ajoute un élément x à la fin de la liste L.
(fin)
Insérer un élément L.insert(i, x) Insère un élément x à l'index i. Déplace
(index) les éléments suivants.
Ajouter une liste L.extend(L2) Ajoute tous les éléments de la liste L2 à
(fin) la fin de L.
Accéder à un L[i] Accède à l'élément à l'index i.
élément
Accéder à une sous- L[start:end] Récupère une sous-liste de L entre les
liste indices start (inclus) et end (exclu).
Modifier un élément L[i] = x Remplace l'élément à l'index i par x.
Supprimer un del L[i] Supprime l'élément à l'index i de la liste.
élément
Supprimer le L.pop() Supprime et retourne le dernier élément
dernier élément de la liste L.
Supprimer un L.pop(i) Supprime et retourne l'élément à l'index
élément spécifique i. Si i est omis, pop() supprime le
(pop par index) dernier élément.
Trier une liste L.sort() Trie la liste L en place (modifie la liste
originale). Peut être trié par ordre
croissant ou décroissant.
Compter un L.count(x) Retourne le nombre d'occurrences de
élément l'élément x dans la liste L.
Obtenir la longueur len(L) Retourne le nombre d'éléments dans la
de la liste liste L.
Fusionner deux L1 + L2 Crée une nouvelle liste en fusionnant les
listes listes L1 et L2.
Réduire la liste à L[::2] Crée une sous-liste en prenant tous les
une sous-liste avec éléments de L avec un pas de 2
un certain intervalle (utilisation de [:]).
Remarques et observations importantes :
1. append() vs extend() :
a. append() ajoute un élément unique à la fin de la liste, tandis que
extend() ajoute tous les éléments d'une autre liste à la fin de la liste
cible.
2. Si vous utilisez append() pour ajouter une liste, elle sera insérée en tant
qu'élément imbriqué (une liste à l'intérieur de la liste).
3. insert() :
a. Cette méthode permet d'ajouter un élément à une position spécifique
dans la liste (en déplaçant les éléments suivants). Exemple :
L.insert(0, 3) insère 3 à la première position de la liste.
11
4. len() et count() :
a. len() retourne le nombre d'éléments dans la liste, et count () permet
de savoir combien de fois un élément apparaît dans la liste.
5. L.sort()
a. Fonctionne pour trier des éléments de la même liste qui sont de types
comparables entre eux.
Si vous avez des éléments provenant de deux listes distinctes, vous pouvez les
fusionner ou les associer pour effectuer un tri global, mais vous devez vous
assurer que les éléments sont comparables entre eux, sinon impossible on ne
peut pas comparer et claser par ordre une liste avec des éléments d'une autre
liste ou des éléments hétérogène
Entrée et Sortie
• Lire une entrée utilisateur
nom = input("Entrez votre nom : ")
print("Bonjour, " + nom)
• Convertir une entrée en entier
age = int(input("Entrez votre âge : "))
12