Académique Documents
Professionnel Documents
Culture Documents
Lecon2 - Structures Conditionnelles Et Itératives
Lecon2 - Structures Conditionnelles Et Itératives
Objectifs
Python exécute normalement les instructions de la première à la dernière ligne, sauf lorsqu'il
rencontre une instruction conditionnelle. Une telle instruction va permettre de faire une
action précise si, par exemple, une variable est positive, une autre action si cette variable est
négative, ou une troisième action si la variable est nulle.
Aussi un principe fondamental de la programmation est la factorisation du code. Factoriser un
code consiste à l'écrire une seule fois et à le réutiliser autant de fois que possible. Une structure
répétitive sert à répéter un certain nombre d'instructions d'un programme autant de fois que
nécessaire de façon automatique.
Cette leçon présente les structures conditionnelles et répétitives avec lesquelles l'apprenant
pourra réaliser des programmes complexes, simplifiés et qui s'exécutent autant de fois que
nécessaire.
I. Instructions conditionnelles
Objectifs
Décrire la structure d'une instruction conditionnelle
Identifier une indentation
Sy nt ax e : python
1. >>>if condition :
2. [indentation] bloc d'instruction en python
La ligne 1 représente un test conditionnel. Il se compose de :
1. Le mot clé « if », en anglais qui signifie « si » en français
2. De la « condition », qui est un test généralement réalisé sur des variables.
3. Du signe deux points, « : », qui termine la condition et est indispensable ; son
omission entraîne l'affichage d'un message d'erreur.
La ligne 2, représente le bloc d'instruction qui sera exécuté si et seulement si la condition de
la ligne 1 est vraie. [Indentation]signifie que toutes les instructions contenues dans le bloc
d'instruction doivent être décalées vers la droite (soit par des espaces ou par une tabulation).
Atte nti on : indentation
En Python l'indentation est très importante car elle permet à l'interpréteur de savoir
où se trouve le début et la fin d'un bloc d'instruction.
Sy nt ax e : python
1. >>>if condition :
2. [Indentation] bloc d'instruction 1
3. else :
4. [Indentation] bloc d'instruction 2
Si la condition de la ligne 1 est fausse alors le bloc d'instruction 1 n'est pas exécuté mais le
bloc d'instruction 2 est exécuté.
R e m arq ue
L'instruction if et l'instruction else sont au même niveau d'indentation.
Sy nt ax e
1. >>>if condition 0 :
2. [Indentation] bloc d'instruction 0
3. elif condition 1 :
4. [indentation] bloc d'instruction 1
5. elif condition 2 :
6. [indentation] bloc d'instruction 2
7. else :
8. [indentation] bloc d'instruction 3
Si aucune condition n (n appartient à [0, 2]) n'est vraie alors le bloc d'instruction 3 sera
exécuté. Sinon si une condition n est vraie alors seulement le bloc d'instruction n
correspondant sera exécuté.
R e m arq ue
l'instruction else ne peut figurer qu'une fois, clôturant le bloc de la condition. Deux instructions
else dans une même condition ne sont pas envisageables.
4. Exercice
[Solution n°1 p 15]
Quelle partie d'une instruction conditionnelle if doit être indentée ?
La première ligne
5. Exercice
[Solution n°2 p 15]
Agencez dans l'ordre les mots suivants pour que le code fonctionne correctement
1. condition:
2. if
3. [indentation]
4. else
5. bloc d'instruction pour condition vrai
6. [indentation] bloc d'instruction pour condition fausse
7. :
Réponse : ___ ___ ___ ___ ___ ___ ___
6. Exercice
[Solution n°3 p 15]
1. elif 1
2. else
3. elif 2
4. if
Réponse : ___ ___ ___ ___
1. Opérateurs de comparaison
Opérateur Signification
== Égal à
!= Différent de
Les conditions introduisent ces opérateurs appelés opérateurs de comparaison
Atte nti on
Il existe une différence entre l'opérateur d'affectation "=" et l'opérateur d'égalité
"=="
2. Prédicat et booléens
Prédicat
Un prédicat est la condition qui est située après le "if" et les ":"lorsqu'on écrit une instruction
conditionnelle.
Ex e m p le : Python 2 ou Python 3
>>>age = 25
>>>age > 12 -> cette instruction représente un prédicat
True -> valeur retournée par le prédicat
>>>age <25
False
>>>age == 25
True
R ap p e l : Les variables booléennes
True et False sont des valeurs ayant leur première lettre en majuscule. Écrire False sans
un 'F' majuscule ou True sans un 'T' majuscule va entraîner une erreur lors de
l'interprétation de l'instruction Python.
Ex e m p le : Python 2 ou Python 3
On voudrait vérifier si une variable age est comprise dans un intervalle afin de décider si un
individu est adolescent ou pas. On sait qu'un individu est adolescent si son age est compris
entre 14 et 21 ans
4. prédicat(s)
Une condition peut contenir plusieurs prédicats. Dans ce cas ils sont associés par des
connecteurs. Dans certains cas, il est possible de transformer des conditions imbriquées en
une seule condition où les prédicats sont reliés par un ou des connecteurs. Le tableau suivant
montre les différents connecteurs
Connecteur Signification Valeur de retour
C ons e il
En reliant les prédicats par le connecteur and, le code devient beaucoup plus court et surtout
il est lisible par rapport au code imbriqué qui est un peu moins lisible.
5. Exercice
[Solution n°4 p 15]
Les variables Python de type booléen peuvent prendre deux valeurs :
true and false
Vrai et Faux
6. Exercice
[Solution n°5 p 15]
Quelle est la valeur retournée par ce prédicat ?
>>>7 != 8
False
True
8. Exercice
[Solution n°7 p 16]
Donnez le resultat d'exécution de ce code ?
numero = 7
if numero >3 :
[indentation] print("3")
[indentation] if numero < 5 :
[indentation][indentation] print("5")
[indentation][indentation] if numero == 7 :
[indentation][indentation][indentation] print("7")
9. Exercice
[Solution n°8 p 16]
Quel est le résultat d'exécution de ce code ?
age = 25
if age >= 25 or age/2 > 30 :
[indentation] print("Vrai")
else :
[indentation] print("Faux")
La structure while est utilisée pour faire des répétitions (boucles) sur une portion de code en
fonction de la valeur de retour d'un prédicat. Cette partie introduit la notion de boucle et
présente l'utilité de la structure while.
2. Boucle finie
Une structure while ("tant que" en Français) permet de répéter un bloc d'instruction tant
qu'une condition renvoie le booléen True. Si la condition renvoie le booléen False, alors
la répétition ou la boucle s'arrête et le bloc d'instruction n'est plus exécuté. On dit alors que
la boucle est finie. chaque répétition d'un bloc d'instruction est appelée une itération.
Ex e m p le : table de multiplication
Ce programme a pour but de réaliser la table de multiplication d'un nombre donné
3. Boucle infinie
Une boucle infinie est une structure répétitive dont la condition renvoie toujours la valeur True.
Ex e m p le : Python 2 ou 3
cette instruction affiche de façon continue l'instruction "ca marche"
boucle infinie
Ex e m p le : Python 2 ou 3
R e m arq ue
L'utilisation de l'instruction break en dehors d'une structure répétitive entraîne une erreur.
5. L'instruction continue
continue est une instruction qui à l’intérieur d'une structure répétitive termine l'itération
courante et débute l'itération suivante.
Ex e m p le : python 2 ou 3
R e m arq ue
L'utilisation de l'instruction continue en dehors d'une structure répétitive entraîne une erreur.
6. Exercice
[Solution n°9 p 16]
ce code exécute l'instruction print combien de fois ?
7. Exercice
[Solution n°10 p 16]
Complétez ce code afin de créer une boucle qui n' affiche que les valeurs paires
>>>x=0
>>> x<=20 :
[indentation] (x)
[indentation] x = x+
8. Exercice
[Solution n°11 p 17]
Quelles instruction termine instantanément une boucle?
9. Exercice
[Solution n°12 p 17]
Que fait ce programme ?
Objectifs
Décrire la syntaxe de l'instruction répétitive for
Utiliser la structure for pour parcourir des séquences
Créer des programmes simplifiés et moins complexe à lire
La structure for est utilisée pour parcourir des séquences. Une séquence est un ensemble
fini d'élément indexé de p à n-1 où p est le 1er élément et n le nème élément. Cette leçon
présente la structure répétitive for et son utilisation sur les séquences de nombre entier.
1. la fonction range
range
la fonction range est une fonction qui crée une séquence contenant des éléments entier d'un
intervalle donné en fonction des paramètres fournis à la fonction.
Ex e m p le
>>>range(10) -> contient tous les entiers de 0 inclus à 10 exclus ; i.e. [0,
10[ ou [0, 9]
>>>range(1, 11) -> contient tous les entiers de 1 inclus à 11 exclus ; i.e. [1,
11[ ou [1, 10]
>>>range(0, 10, 2) -> contient un ensemble d'entiers de 0 inclus à 10 exclus avec
un pas de 2 ; i.e. {0, 2, 4, 6, 8}
Ex e m p le
Reprenons l'exemple de la table de multiplication d'un nombre donné
C ons e il
La boucle while est parfaitement adaptée pour : réaliser des boucles finies sur un bloc
d'instruction en fonction d'un prédicat bien défini, réaliser des programmes qui se répètent
jusqu’à ce que l'utilisateur décide d'y mettre fin, faire des programmes qui s'exécute sans fin.
La boucle for est beaucoup plus adaptée pour parcourir des séquences d'élément. Elle rend le
code moins surchargé et beaucoup plus lisible. Parcourir une séquence avec une boucle while
demande beaucoup de ligne de code.
4. Exercice
[Solution n°13 p 17]
Laquelle de ces structures est utilisée pour réaliser des itérations sur une séquence en python
foreach
fore
forever
for
whole
5. Exercice
[Solution n°14 p 17]
Complétez ce code afin de créer une boucle qui n' affiche que les valeur impaires de la
séquence.
for i in range( , 20, ):
[indentation] print( )
Conclusion
Cette leçon a présenté dans un premier temps la notion de structure conditionnelle qui permet
à l'apprenant de réaliser des programmes un peu plus complexe que ceux vu lors des deux
première leçon. Il pourra par exemple écrire un programme qui résout une équation de second
degré.
Dans un second temps, elle a présenté la notion de structure répétitive et leur utilité.
L'apprenant pourra s'aider de ces structures pour factoriser son code, créer des boucles ou
parcourir des séquences d'élément. La prochaine leçon s'intéressera à la factorisation de code
avec les fonctions.
Solution des exercices
Vrai et Faux
True
fore
forever
for
whole