STCN – S5
PROGRAMMATION PYTHON
2025-2026
Pr. Said BOUJERFAOUI
[Link]@[Link]
Historique de Python
▪ Python est un langage de programmation apparu officiellement en 1991. Guido van Rossum l’a
conçu à la fin des années 1980 à l’institut national de recherche en mathématique et
informatique aux Pays-Bas.
▪ Le nom Python ne vient pas du serpent 🐍, mais bien de la série humoristique britannique « Monty
Python’s Flying Circus »
▪ Guido van Rossum, le créateur du langage, était fan de cette émission et voulait que son langage reflète
le même esprit léger, créatif et amusant : la programmation doit être un plaisir.
Avantages du langage Python
▪ Portable : fonctionne sur plusieurs systèmes (Windows, macOS, Linux, Unix, etc.).
▪ Logiciel libre : Python est gratuit et open source.
▪ Syntaxe simple : facile à lire et à apprendre, même pour les débutants.
▪ Gestion automatique de la mémoire : Python s’occupe lui-même de l’allocation et de la
libération de la mémoire.
▪ Typage dynamique : Pas besoin de déclarer les variables à l’avance. Le type d’une variable est
déterminé automatiquement pendant l’exécution.
▪ Programmation orientée objet : permet de créer et manipuler des objets pour mieux
structurer le code.
Avantages du langage Python
▪ Approche « jeu de construction » : les programmes peuvent être créés en combinant
facilement des modules déjà existants.
▪ Bibliothèque standard très riche : Contient de nombreux outils prêts à l’emploi :
➢Développement Web: Django, Pyramid, Zope, Plone,...
➢Calcul Scientifique: Numpy, Scipy, sage, ...
➢Représentation graphique: gnuplot, matplotlib, VTK, ...
➢GUIs: TkInter, PyGtk, PyQt,...
➢Manipulation d’images: Pillow, OpenCV-Python,...
➢Bases de données: MySQL, PostgrSQL, Oracle, ...
Python Bytecode
- Langage compilé
• Le code source est traduit entièrement en code binaire par un compilateur.
• Le programme compilé est ensuite exécuté par le processeur.
• Exécution rapide car déjà traduit.
• Exemples : C, C++, Fortran.
- Langage interprété
• Le code est lu et exécuté ligne par ligne.
• Pas de compilation complète avant l’exécution.
• Donne le résultat immédiatement.
• Exemples : Bash, JavaScript, PHP.
- Langage Python (cas particulier) : Python compile d’abord le code en Bytecode (fichier .pyc).
Ce Bytecode est ensuite interprété par la machine virtuelle Python (PVM).
Donc Python est à la fois compilé et interprété.
Exécution de Python
Trois façons de démarrer Python:
1. Mode interactif : Exécute le code ligne par ligne.
Pratique pour tester rapidement des instructions.
Sous Windows → Exécuter → taper python. L’invite >>> permet d’écrire directement
du code.
2. Exécuter un script (.py) : Permet d’exécuter un programme complet.
Dans CMD : python nom_du_fichier.py , (ex : python E:\[Link]).
3. Environnement de développement (IDE) : Interface graphique avec outils
intégrés : Éditeur de texte, Débogueur, Terminal d’exécution.
Exemples : IDLE, PyCharm, VS Code, Spyder, Jupyter Notebook.
Règles d’écriture
▪ La casse est significative → Variable, variable et VARIABLE sont trois noms
différents.
▪ Typage dynamique → Pas besoin de déclarer le type d’une variable, Python le
détermine automatiquement.
▪ Une instruction commence en première colonne → Pas d’espace avant la première
ligne d’instruction principale.
▪ Indentation obligatoire → Les blocs (boucles, conditions, fonctions…) sont définis par
les espaces et non par des accolades {}.
▪ Instructions longues → Si une ligne est trop longue : utiliser un caractère de
continuation \, ou mettre l’instruction entre parenthèses ( ).
if a == b and c == d and \ if (a == b and c == d and
d==e : d==e) :
print("ok ") print("ok ")
Les opérations de base
Hello world !
C# using System;
class Hello
{
static void Main()
{
[Link]("Hello, World");
}
}
Python
print("Hello, World")
Types numériques
▪ Entier
✓ Généralement signé, 32 bits
Entier compris entre -2 147 483 648 et 2 147 483 647
(codage sur 32 bits soit 4 octets)
▪ Entier Long: Entier compris entre -infini et -2 147 483 647 ou
entre 2 147 483 648 et +infini
✓ Taille illimitée
▪ Float
✓ nombre flottant qui a la précision d'un double.
▪ Complexe
✓ Format: <real>+<imag>j
✓ Exemple: 6+3j
Chaînes de caractères (Strings)
▪ Une suite des caractères délimitée par des guillemets 3 types de guillemets :
'guillemets simples’
"guillemets Double"
"""guillemets Triple """ ou '''guillemets triple'‘’
– Les guillemets triples peuvent s'étendre sur plusieurs lignes.
– Exemples
>>> print("""Bonjour,
>>> print('This string may contain a "')
Bienvenue dans le cours Python !
This string may contain a "
Ce texte s’affiche sur plusieurs
>>> print("A ' is allowed") lignes.""")
A ' is allowed Bonjour,
>>> print("""Either " or ' are OK""") Bienvenue dans le cours Python !
Either " or ' are OK Ce texte s’affiche sur plusieurs lignes.
Affectation
Opérations arithmétiques
Exemple:
>>> 5 + 3 # Addition
8
>>> 2 ** 8 # Exponentiation
256
>>> 13 / 4 # Division réelle
3.25
>>> 13 // 4 # Division entière (troncature)
3
>>> 13 % 4 # Reste
1
Comparaison booléenne
▪ Comparaison : < <= > >= == !=
Résultats 1 (true) or 0 (false)
Exemple:
>>> 4 > 1.5
1
>>> 'this' != 'that’
1
>>> 4+3j == 4-2j
0
>>> '5' == 5
0
>>> 0 < 10 < 20
1
Opérations logiques (booléennes)
▪ Opérateurs : and or not
Algèbre booléenne
A B Not A A and B A or B
1 1 1 1
0
1 0 0 1
0 1 0 1
1
0 0 0 0
Priorité des opérateurs
Ordre de priorité (du plus faible au plus fort)
Ordre Opérateurs Ordre Opérateurs
1 or 5 +,-
2 and 6 *,/
3 not
4 < , <= , > , >= , != et ==
Expressions booléennes
>>> 1 == 1 and 2 >= 3
False
>>> 1 == 1 or 2 >= 3
True
>>> not 5.3 != 2.2 # pareil que: not (5.3 != 2.2)
False
Opérations booléennes
Exercice 1
A B not A and B not A or B not A or A not A and A
1 1
1 0
0 1
0 0
Opérations booléennes
Exercice 2
Évaluez les expressions logiques suivantes :
A = (18 - 13 < 2) or (13 >= 14 - 1*2) and (5<2)
B = not(True or False) and ( True and False)
C = not(True) or not(False)
D = not(True) and not(False) or (13 < 13*2)
Donnée Valeur Type
A
B
C
D
Opérations sur les Chaînes de caractères
Les opérateurs sur les chaînes permettent de concaténer, filtrer ou extraire des parties des
chaînes de caractères entres elles
Synatxe Sémantique
len(s) Longueur de la chaîne s
s1 + s2 Concaténation de s1 et s2
s*n Répétition ’n’ fois de la chaîne ’s’
s in t Teste si la chaîne ’s’ est présente dans ’t’.
s[n] Extraction du n-ième caractère en partant du début de la chaîne
s[-n] Extraction du n-ième caractère en partant de la fin de la chaîne
s[n:m] Extraction des caractères se trouvant entre le n-ième et le m-ième
s[:n] Extraction des ’n’ premiers caractères de la chaîne
s[n:] Extraction des derniers caractères de la chaîne à partir du n-ème
s[-n:] Extraction des caractères des ’n’ derniers caractères de la chaîne
Opérations sur les Chaînes de caractères
- Exemple
txt="cours python" txt2="math"
print(txt+txt2) #cours pythonmath
print(len(txt)) #12
txt2=txt*2
print(txt[2]) #u
print(txt2) #cours pythoncours python
print(txt[-2]) #o print("ou" in txt) #True
print(txt[2:7]) #urs p
print(txt[:7]) #cours p
print(txt[4:]) #s python
print(txt[-4:]) #thon
Fonctions des Chaînes de caractères
s = '''Hello world''' Multi-line strings (triple quote)
[Link]() to lowercase
[Link]() to uppercase
[Link]('e') index of first occurrence, throw exception if substring
not found
[Link](‘o') count occurrences
s[1:10] slice, just like list slice
[Link](“Hello",“Hi") replace substring.
>>> "Hello".ljust(8) "Hello "
Left justify to given length.
>>> "Hello".rjust(8) " Hello"
Right justify.
>>> "Hello".center(8) " Hello "
Center, of course.
Conversion entre types
• La conversion de types permet de passer d’un type à l’autre
• La règle générale est de se servir du nom du type avec des parenthèses
Syntaxe Sémantique
bool(var) Converti ’var’ en un booléen
int(var) Converti ’var’ en un entier
float(var) Converti ’var’ en un flottant
str(var) Converti ’var’ en une chaîne de caractères
• Exemple
Print() / input()
• print(msg) : imprime à l’écran une chaîne de caractères donnée en argument.
• input(msg): permet de récupérer une chaîne de caractères tapée par l’utilisateur
(retourne une chaine).
• Exemples
Structures de contrôle
Structures alternatives
Structures itératives
Les Blocs
• Un bloc d’instructions est une unité
de programmation qui regroupe une
séquence ordonnée d’instructions qui
s’exécutent les unes après les autres
• Les instructions qui se trouvent au
même niveau d’indentation font parti
d’un même bloc
• Pas de délimiteurs (pas de { et de })
• Tout ce qui suit un caractère ’#’ est
considéré comme un commentaire et
est ignoré ;
Les structures conditionnelles
• Syntaxe
if <condition1>:
<blocs d'instructions 1>
elif <condition2>:
<blocs d'instructions 2>
else:
<blocs d'instructions 3>
• Exemple1
Les structures conditionnelles
• Exemple2
• Remarque
Il n’existe pas de switch en python et par conséquent on peut utilise if … elif…else
Les structures conditionnelles
Les éléments suivants sont considérés comme faux dans un test conditionnel :
• None
• False
• Tous les zéros : 0 , 0. , 0j
• Les listes/dictionnaires/chaines vides : [] , () , '' '', {}
• Tout objet dont la méthode bool() retourne False condition = 5 -> True
• Tout objet dont la méthode len() retourne 0 condition = None -> False
Exemple condition = 0 -> False
condition = ‘’ -> False
condition = [] -> False
condition = () -> False
condition = {} -> False
Boucle for
• En Python, for est un itérateur sur des collections d’objets. Il est utilisé pour parcourir, dans l’ordre s’il
y en a un, les éléments de la collection
• Syntaxe:
for elem in iterable :
Instructions
iterable est souvent:
✓ range(debut,fin,[step=1])
✓ une liste
✓ n’importe quel objet itérable
Remarque : la fonction range(start, stop, step)permet de créer une collection de nombres pour itérer
dessus
• Exemples
Boucle for
• Exemples
Boucle while
• Syntaxe
while <condition1>: while <condition1>:
<blocs d'instructions 1> <blocs d'instructions 1>
if <condition2>: break
if <condition3>: continue
else:
✓ break : sort de la boucle sans <blocs d'instructions 2>
passer par else
✓ continue : remonte au début de la boucle
✓ pass : ne fait rien
✓ else : lancé si et seulement si la boucle se termine normalement
• Exemple
Boucle infinie
Boucle while
• Exemples
7 est premier
Structures de controle
Exercice 1
Ecrire un programme qui lit trois paramètres : un nombre entier, un
caractère représentant une opération (+,-,x ou /) et un second
nombre entier, puis effectue le calcul ainsi indiqué et affiche le
résultat.
Les structures conditionnelles
Solution 1 # Lecture des données
a = int(input("Entrez le premier nombre : "))
op = input("Entrez l’opération (+, -, x, /) : ")
b = int(input("Entrez le deuxième nombre : "))
# Calcul selon l’opération
if op == "+":
resultat = a + b
elif op == "-":
resultat = a - b
elif op == "x" or op == "*":
resultat = a * b
elif op == "/":
# Vérifier que le dénominateur n’est pas nul
if b != 0:
resultat = a / b
else:
resultat = "Erreur : division par zéro"
else:
resultat = "Opération inconnue"
# Affichage du résultat
print("Résultat :", resultat)