Introduction
Le flux de contrôle (Control Flow) est l'ordre dans lequel les instructions, les commandes ou les appels de fonction individuels sont exécutés ou évalués. Le flux de contrôle d'un programme Python est régi par les instructions conditionnelles, les boucles et les appels de fonction.
Dans ce laboratoire, vous apprendrez les concepts fondamentaux du contrôle de l'exécution des programmes en Python. Vous explorerez la logique conditionnelle à l'aide des instructions if, divers opérateurs, la nouvelle instruction match-case, ainsi que l'itération à l'aide des boucles while et for. À la fin de ce laboratoire, vous serez en mesure d'écrire des programmes Python plus dynamiques et plus puissants.
Opérateurs de Comparaison et Booléens
Dans cette étape, vous apprendrez à utiliser les opérateurs de comparaison et booléens pour former des expressions logiques. Ces expressions sont fondamentales pour le contrôle de flux car elles s'évaluent soit à True (Vrai), soit à False (Faux), ce qui détermine ensuite la manière dont le programme progresse.
Opérateurs de Comparaison
Les opérateurs de comparaison sont utilisés pour comparer deux valeurs. Voici un tableau des opérateurs de comparaison courants :
| Opérateur | Signification |
|---|---|
== |
Égal à |
!= |
Différent de |
< |
Strictement inférieur à |
> |
Strictement supérieur à |
<= |
Inférieur ou égal à |
>= |
Supérieur ou égal à |
Ces opérateurs s'évaluent à True ou False. Par exemple, 42 == 42 est True, mais 42 == '42' est False car les types (entier et chaîne de caractères) sont différents.
Opérateurs Booléens
Il existe trois opérateurs booléens : and (et), or (ou), et not (non). Ils sont utilisés pour combiner ou inverser des valeurs booléennes. Leur ordre de précédence est not, puis and, puis or.
L'opérateur and retourne True uniquement si les deux expressions sont vraies.
L'opérateur or retourne True si au moins une des expressions est vraie.
L'opérateur not inverse la valeur booléenne (not True devient False).
Combinaison d'Opérateurs
Vous pouvez combiner des opérateurs de comparaison et booléens pour créer des expressions logiques plus complexes.
Note : Si vous n'êtes pas familier avec l'utilisation de WebIDE (similaire à VS Code), veuillez vous familiariser d'abord avec ce lab.
Par exemple :
(4 < 5) and (5 < 6)
Sortie :
True
Maintenant, pratiquons. Ouvrez le fichier operators_example.py depuis l'explorateur de fichiers à gauche. Ajoutez le code suivant au fichier. Ce code combine plusieurs opérateurs pour évaluer un seul résultat booléen.
## operators_example.py
result = 2 + 2 == 4 and not 2 + 2 == 5 and 2 * 2 == 2 + 2
print(result)
Pour exécuter le script, ouvrez un terminal dans le WebIDE et exécutez la commande suivante :
python3 operators_example.py
Vous devriez voir la sortie suivante, car l'expression s'évalue à True :
True
Instructions If et Opérateur Ternaire
Dans cette étape, vous apprendrez à contrôler le flux du programme avec les instructions if, elif et else pour exécuter des blocs de code basés sur des conditions spécifiques. Cette étape introduit également l'opérateur conditionnel ternaire pour écrire des expressions conditionnelles concises sur une seule ligne.
Les Instructions if, elif, et else
- L'instruction
ifexécute un bloc de code si sa condition estTrue. - L'instruction
elif(else if) vérifie une autre condition si les conditionsifouelifprécédentes étaientFalse. - L'instruction
elseexécute un bloc de code si toutes les conditionsifetelifprécédentes étaientFalse.
Voici la structure de base :
if condition1:
## code à exécuter si condition1 est Vrai
elif condition2:
## code à exécuter si condition1 est Faux et condition2 est Vrai
else:
## code à exécuter si toutes les conditions sont Faux
Opérateur Conditionnel Ternaire
L'opérateur ternaire fournit une manière abrégée d'écrire de simples instructions if-else sur une seule ligne. Sa syntaxe est :
<expression1> if <condition> else <expression2>
Par exemple, print('kid' if age < 18 else 'adult') est une manière compacte d'écrire un bloc if-else complet.
Maintenant, pratiquons l'utilisation d'un bloc conditionnel complet. Ouvrez le fichier if_example.py et ajoutez le code suivant. Ce script vérifiera la valeur de la variable name et affichera un message différent en conséquence.
## if_example.py
name = 'Antony'
if name == 'Debora':
print('Hi Debora!')
elif name == 'George':
print('Hi George!')
else:
print('Who are you?')
Exécutez le script depuis le terminal :
python3 if_example.py
Puisque name est 'Antony', ni la condition if ni la condition elif n'est satisfaite, le bloc else est donc exécuté.
Sortie :
Who are you?
Instruction Switch Case
Dans cette étape, vous allez explorer la Correspondance de Motifs Structurelle (Structural Pattern Matching), l'équivalent puissant de switch-case de Python introduit dans Python 3.10. Vous pratiquerez la correspondance de valeurs, l'utilisation de motifs OU (OR patterns), et l'implémentation de cas par défaut avec les mots-clés match et case.
Une instruction match prend une expression et compare sa valeur à des motifs successifs fournis comme un ou plusieurs blocs case.
Correspondance de Base
Vous pouvez effectuer une correspondance avec des valeurs littérales comme des nombres ou des chaînes de caractères.
Motifs OU (OR Patterns)
Vous pouvez combiner plusieurs motifs littéraux dans un seul case en utilisant l'opérateur | (ou). Par exemple, case 200 | 201:.
Cas par Défaut
Le symbole de soulignement (_) est un caractère générique (wildcard) et est utilisé pour définir un cas par défaut qui correspondra si aucun autre cas n'a été trouvé.
Pratiquons. Ouvrez le fichier match_example.py et ajoutez le code suivant. Ce script utilise une instruction match pour déterminer une action basée sur un code de réponse HTTP.
## match_example.py
response_code = 800
match response_code:
case 200 | 201:
print("OK")
case 300 | 307:
print("Redirect")
case 400 | 401:
print("Bad Request")
case 500 | 502:
print("Internal Server Error")
case _:
print("Invalid Code")
Exécutez le script depuis votre terminal :
python3 match_example.py
Puisque response_code est 800, il ne correspond à aucun des cas spécifiques, donc le cas par défaut (_) est exécuté.
Sortie :
Invalid Code
Boucles While et Contrôle de Boucle
Dans cette étape, vous maîtriserez la boucle while pour l'exécution répétée tant qu'une condition est vraie. Vous apprendrez également à gérer le comportement de la boucle en utilisant l'instruction break pour sortir de la boucle et l'instruction continue pour sauter l'itération courante.
La Boucle while
Une boucle while exécute de manière répétée une instruction cible tant qu'une condition donnée est True. Il est crucial de s'assurer que la condition devienne éventuellement False pour éviter une boucle infinie.
L'Instruction break
L'instruction break termine la boucle courante et reprend l'exécution à l'instruction suivante, tout comme le break traditionnel en C.
L'Instruction continue
L'instruction continue rejette toutes les instructions restantes dans l'itération courante de la boucle et renvoie le contrôle au début de la boucle.
Créons une boucle while simple. Ouvrez le fichier while_example.py et ajoutez le code suivant. Ce script affichera un message cinq fois.
## while_example.py
spam = 0
while spam < 5: ## Continue tant que spam est inférieur à 5
print('Hello, world.')
spam = spam + 1 ## Incrémente le compteur pour éviter une boucle infinie
Maintenant, exécutez le script depuis le terminal :
python3 while_example.py
La boucle s'exécutera tant que spam est inférieur à 5. À chaque itération, spam est incrémenté de 1.
Sortie :
Hello, world.
Hello, world.
Hello, world.
Hello, world.
Hello, world.
Boucles For et Itération
Dans cette étape, vous utiliserez la boucle for pour itérer sur les éléments d'une séquence telle qu'une liste ou une chaîne de caractères. Cette étape couvre l'utilisation de la fonction range() pour boucler un nombre spécifique de fois, le bloc else optionnel dans une boucle for, et comment terminer un programme entièrement avec sys.exit().
La Boucle for
Une boucle for est utilisée pour itérer sur une séquence (qui peut être une liste, un tuple, un dictionnaire, un ensemble (set), ou une chaîne de caractères (string)).
La Fonction range()
La fonction range() génère une séquence de nombres, ce qui est utile pour boucler un nombre spécifique de fois.
range(stop): Génère des nombres de 0 jusqu'àstop(exclu).range(start, stop): Génère des nombres destartjusqu'àstop(exclu).range(start, stop, step): Génère des nombres destartjusqu'àstop(exclu), en incrémentant parstep.
Terminer un Programme avec sys.exit()
La fonction sys.exit() peut être appelée pour terminer le programme immédiatement. Vous devez d'abord importer sys (import sys) pour l'utiliser.
Pratiquons l'utilisation d'une boucle for avec range(). Ouvrez le fichier for_example.py et ajoutez le code suivant. Ce script affichera les nombres pairs de 0 à 8.
## for_example.py
## range(start, stop, step)
for i in range(0, 10, 2):
print(i)
Exécutez le script depuis le terminal :
python3 for_example.py
La fonction range(0, 10, 2) génère des nombres commençant à 0, jusqu'à 10 (exclu), avec un pas de 2.
Sortie :
0
2
4
6
8
Résumé
Félicitations pour avoir terminé ce laboratoire ! Vous maîtrisez maintenant les concepts fondamentaux du contrôle de flux (control flow) en Python.
Dans ce laboratoire :
- Vous avez appris à utiliser les opérateurs de comparaison et booléens pour former des conditions logiques.
- Vous vous êtes exercé à contrôler l'exécution du programme avec les instructions
if,elif, etelse, ainsi qu'avec l'opérateur ternaire concis. - Vous avez exploré la puissante instruction
match-casede Python 3.10 pour la correspondance de motifs structurels (structural pattern matching). - Vous avez appris à créer des boucles avec
whileetfor, et à contrôler leur comportement à l'aide debreaketcontinue.
Avec ces compétences, vous pouvez désormais écrire des programmes Python plus complexes et intelligents capables de prendre des décisions et de répéter des tâches.



