Université Ibn Zohr
Faculté des Sciences Appliquées – Ait Melloul
Génie Informatique et Systèmes Intelligents
Informatique Appliquée S1
Programmation avec Python I
Pr. Rachid FATEH
Année Universitaire: 2025-2026
Structures conditionnelles
Test simple
◼ L‟idée de base est donc la réalisation d‟une ou plusieurs actions selon
la vérification d’une condition.
◼ Cela correspond au SI ... ALORS ... du langage courant.
◼ En mathématiques on utilise également le terme d‟implication.
Syntaxe d’un test simple
if conditionnelle:
IA - S1
bloc d’instructions à exécuter si la
conditionnelle est vraie
Remarque plus qu’importante :
En python les blocs d’instructions sont délimités de deux façons :
1. La ligne les précédant se termine par un double point :
2. L‟intégralité du bloc est indenté par rapport aux instructions qui le
FATEH
précèdent et le suivent.
2
Structures conditionnelles
Test simple
Exemple de test simple :
remplacer un nombre par sa valeur absolue
x = eval(input())
if x < 0:
IA - S1
x = -x
print(x)
FATEH
3
Structures conditionnelles
Test avec alternative(s).
◼ Cette fois-ci, on pourra avoir une ou plusieurs alternatives à la
conditionnelle si cette dernière n‟est pas vérifiée.
◼ On va donc simuler des raisonnements de la forme
SI ... ALORS ...
SINON SI ... ALORS ...
SINON ...
IA - S1
Syntaxe d’un test avec une alternative :
if conditionnelle:
bloc d’instructions à exécuter si la
conditionnelle est vraie
else:
bloc d’instructions à exécuter si la
conditionnelle est fausse
FATEH
4
Structures conditionnelles
Test avec alternative(s)
Exemple de test avec une alternative :
savoir si un nombre est pair ou non
n = eval(input())
if n%2 == 0:
print("le nombre saisi est pair")
IA - S1
else:
print("le nombre saisi est impair")
FATEH
5
Structures conditionnelles
Test avec alternative(s)
Syntaxe d’un test avec plusieurs alternatives :
if conditionnelle:
bloc d’instructions à exécuter si la
conditionnelle est vraie
elif autre_conditionnelle:
bloc d’instructions à exécuter si la seconde
IA - S1
conditionnelle est vraie
else:
bloc d’instructions à exécuter si les premières
conditionnelles sont fausses
FATEH
6
Structures conditionnelles
Test avec alternative(s)
Exemple de test avec plusieurs alternatives : signe strict d‟un nombre
x = eval(input())
if x < 0:
print("le nombre saisi est strictement négatif")
elif x > 0:
IA - S1
print("le nombre saisi est strictement positif")
else:
print("le nombre saisi est nul")
FATEH
7
Structures conditionnelles
Imbrication de tests
◼ L‟imbrication de structures conditionnelles est non seulement
possible mais souvent fort utile.
◼ Cela peut éviter le recours à une succession de tests simples et donc
rendre les codes plus lisibles.
Exemple : équation du premier degré ax + b = 0
IA - S1
a,b = eval(input()),eval(input())
if a == 0:
if b == 0:
print("infinité de solutions")
else:
print("pas de solution")
else:
print("unique solution :",-b/a)
FATEH
8
Structures conditionnelles
Opérateur ternaire.
◼ Cet opérateur permet dans certains cas une syntaxe plus compacte
d‟un test avec une alternative.
◼ Néanmoins son usage est beaucoup plus limité puisque les blocs à
exécuter selon que la conditionnelle soit vraie ou fausse ne doivent
comporter qu‟une seule instruction.
◼ Plus exactement les deux alternatives doivent être le calcul d‟une
expression.
IA - S1
Syntaxe de l’opérateur ternaire :
expression_1 if conditionnelle else expression_2
Exemples : majeur ou mineur ?
statut = "mineur" if age < 18 else "majeur"
FATEH
print("mineur") if age < 18 else print("majeur")
9
Structures conditionnelles
Exercices
Exercice : écrire un programme calculant les maximums et minimums de
deux nombres.
Solution 1 : avec un test à une alternative
x,y = eval(input()),eval(input())
if x > y:
mini,maxi = y,x
else:
IA - S1
mini,maxi = x,y
print("minimum :",mini,", maximum :",maxi)
Solution 2 : avec un test simple
x, y = eval(input()),eval(input())
mini, maxi = x, y
if x > y:
mini, maxi = y, x
FATEH
print("minimum :",mini,", maximum :",maxi)
10
Structures conditionnelles
Exercices
Exercice : écrire un programme qui en fonction de la moyenne aux écrits
du Bac indique si le lycéen en question est admis, recalé ou au
rattrapage.
Solution :
note = eval(input())
IA - S1
if note < 8:
print("recalé")
elif note < 10:
print("rattrapage")
else:
print("admis")
FATEH
11
Structures itératives
Notion d’itération
Dans certaines situations, on est amené à exécuter
plusieurs fois des actions identiques ou du moins de
même nature.
Une Itération est une séquence d‟instructions destinée à
IA - S1
être exécutée plusieurs fois.
Selon que le nombre de répétitions soit connu à l‟écriture du
programme ou pas, on utilisera une structure « for » ou
une structure « while ».
FATEH
12
Structures itératives
Structure “for”
◼ La structure « for » réalise un nombre d‟itérations fixe et connu.
◼ Elle utilise une variable dont la valeur va parcourir une certaine plage
au fil des itérations. C‟est cette variable qui contrôlera le nombre
d‟itérations.
◼ Cette plage de valeurs va être construite grâce à la fonction
« range ».
IA - S1
Syntaxe de la fonction “range” :
range(début,fin,pas)
◼ Cette fonction produit une plage de valeurs allant de „début‟ (inclus) à
„fin‟ (non inclus) avec un certain „pas‟.
◼ À noter que par défaut „début‟ et „pas‟ valent respectivement 0 et 1.
FATEH
13
Structures itératives
Structure “for”
Exemples d’utilisation de la fonction “range” :
◼ range(6) produira la plage de valeurs 0, 1, 2, 3, 4, 5.
◼ range(3,6) produira la plage de valeurs 3, 4, 5.
◼ range(3,10,2) produira la plage de valeurs 3, 5, 7, 9.
◼ range(6,0,-1) produira la plage de valeurs 6, 5, 4, 3, 2, 1.
IA - S1
for i in range(0,n) : # parcourt tous les entiers de 0 à n-1 inclus
for i in range(n,0,-1) : # parcourt tous les entiers de n à 1 inclus dans le sens
décroissant
for i in range(2,1000,3) : # parcourt tous les entiers de 2 à 1000 de 3 en 3
# (2,5,8,...)
for e in li : # parcourt tous les éléments de la liste li
for cle,valeur in [Link] () : # parcourt tous les éléments du dictionnaire d
FATEH
14
Structures itératives
Structure “for”
Syntaxe de la structure “for” :
for var in range(début,fin,pas):
bloc d’instructions à répéter
pendant que var prend les valeurs de la
plage définie par range
IA - S1
Explication du fonctionnement :
◼ Au fil des itérations, la variable var prendra successivement toutes les
valeurs de la plage créée par la fonction range.
◼ Le nombre d’itérations sera donc le nombre d’éléments de la plage
créée par la fonction range.
◼ En pratique on se servira également très souvent des valeurs de la
FATEH
variable var.
15
Structures itératives
Structure “for”
Exemple : table de multiplication d‟un entier saisi par l‟utilisateur
n = eval(input())
for i in range(1,11):
print(i,'*',n,'=',n*i)
IA - S1
Déroulement du programme :
◼ Admettons que l‟utilisateur saisisse la valeur 9.
◼ À la première itération la variable i vaut 1,
il est donc affiché 1 * 9 = 9.
◼ À la seconde itération la variable i vaut 2,
il est donc affiché 2 * 9 = 18.
FATEH
◼ Etc.
16
Structures itératives
Structure “for”
Autres exemples : affichage des nombres pairs entre 20 et 0
for i in range(20,-1,-2):
print(i)
sum = 0
IA - S1
for i in [1, 2, 3, 4]:
sum += i
prod = 1
for p in range(1, 10):
prod *= p
Remarques
Pour un grand nombre d'éléments, on préférera utiliser xrange
FATEH
plutôt que range.
17
Structures itératives
Structure “while”
◼ La structure « while » réalise un nombre d‟itérations non
nécessairement connu à l‟écriture du programme.
◼ Ce nombre dépend d‟une conditionnelle qui sera évaluée avant
chaque itération.
◼ On la qualifie parfois d‟itération conditionnelle.
Syntaxe de la structure “while” :
IA - S1
while conditionnelle:
bloc d’instructions à exécuter tant que la
conditionnelle est vraie
Explication du fonctionnement :
◼ On exécute donc le bloc d‟instructions tant que la conditionnelle
est vraie.
FATEH
◼ Dans ce bloc, il est donc nécessaire de modifier la valeur de la
conditionnelle pour ne pas risquer d‟avoir une infinité d‟itérations. 49
Structures itératives
Structure “while”
Exemple : calcul de la partie entière d‟un réel positif
x = eval(input())
n = 0
while n+1 <= x:
n += 1
print("la partie entière de",x,"est",n)
IA - S1
Déroulement du programme :
◼ Admettons que l‟utilisateur saisisse la valeur 2.57
◼ Avant les itérations, la variable n est initialisée à 0.
◼ La conditionnelle est alors vraie donc on réalise la première itération, et
n vaut maintenant 1.
◼ La conditionnelle est encore vraie donc on réalise la seconde itération,
et n vaut maintenant 2.
FATEH
◼ Cette fois-ci la conditionnelle est fausse et l‟on stoppe les itérations. 50
Structures itératives
Imbrication de structures itératives
◼ L‟imbrication de structures itératives est non seulement possible
mais souvent fort utile.
◼ À noter que l‟on peut également imbriquer structures itératives et
structures conditionnelles.
Exemple : affichage de toutes les tables de multiplications
for i in range(1,11):
IA - S1
print("table de",i)
for j in range(1,11):
print("\t",j,"*",i,"=",j*i)
La variable “i” vaut d‟abord 1, et alors “j”
prend toutes les valeurs de 1 à 10, puis
“i” vaut 2 et “j” prend de nouveau toutes
les valeurs de 1 à 10, etc.
FATEH
20
Structures itératives
Sorties de boucles
Deux possibilités pour “sortir” d’une boucle :
◼ “break” : cette commande permet la sortie de la structure itérative
“for” ou “while” qui la contient.
◼ “continue” : cette commande permet de passer directement à
l’itération suivante dans la structure “for” ou “while” qui la contient.
Exemple de “break” : où l‟on félicite l‟utilisateur s‟il saisit un „x‟ en au
IA - S1
plus 10 tentatives.
for i in range(9):
if input() == 'x':
print("quel talent")
break
FATEH
21
Structures itératives
Sorties de boucles
Exemple de “continue” : affichage de tous les nombres de
10 à 20 sauf le nombre 13.
for i in range(10,21):
if i == 13:
continue
IA - S1
print(i)
FATEH
22
Structures itératives
Clause “else” dans une boucle
◼ Les structures “for” et “while” peuvent contenir une clause “else”.
◼ À noter que celle-ci ne sera exécutée que si la sortie de la boucle
s‟effectue de façon normale, c‟est-à-dire sans “break”.
Syntaxe de la structure “for” avec clause “else” :
for var in range(début,fin,pas):
IA - S1
bloc d’instructions à répéter
pendant que var prend les valeurs de la
plage définie par range
else:
bloc d’instructions à exécuter (une fois)
quand var a pris toutes les valeurs de la
plage définie par range
FATEH
23
Structures itératives
Clause “else” dans une boucle
Syntaxe de la structure “while” avec clause “else” :
while conditionnelle:
bloc d’instructions à exécuter tant que la
conditionnelle est vraie
else:
bloc d’instruction à exécuter (une fois) si
la conditionnelle est fausse
IA - S1
Exemple : savoir si un nombre n saisi par l‟utilisateur est un nombre
premier ou non
n = eval(input())
for i in range(2,n):
if n%i == 0:
premier = False
break
else:
FATEH
premier = True
24
Structures itératives
Exercices
Exercice : écrire un programme calculant la somme des premiers entiers
naturels jusqu‟à un entier positif saisi par l‟utilisateur.
Solution :
n = -1
IA - S1
while n < 0:
n = eval(input())
somme = 0
for i in range(n+1):
somme += i
print("la somme des",n,"premiers entiers
vaut",somme)
FATEH
25
Structures itératives
Exercices
Exercice : écrire un programme calculant la somme d‟une suite
d‟entiers saisie par l‟utilisateur se terminant par 0 (exemple 5, 4, 9,
0 renverra 18).
Solution :
IA - S1
somme,n = 0,1
while n != 0:
n = eval(input())
somme += n
print("la somme des entiers saisis vaut",somme)
FATEH
26
Les structures de contrôle
Zip et map
▪ zip : permet de parcourir plusieurs séquences en parallèle
L1 = [1, 2, 3]
1 4 -- 5
L2 = [4, 5, 6]
2 5 -- 7
for (x, y) in zip(L1, L2):
3 6 -- 9
print (x, y, '--', x + y)
IA - S1
▪ map : applique une méthode sur une ou plusieurs séquences
def double(x):
return x*2
L=[1,2,3,4,5,6,7,8,9]
map(double,L)
[2,4,6,8,10,12,14,16,18]
FATEH
27