Contrôlez le déroulement de votre programme avec des conditions
Comprenez ce qu’est le déroulement du programme
Le déroulement du programme est l’ordre dans lequel les lignes de code sont exécutées. Certaines lignes seront lues une fois seulement, d’autres plusieurs fois. D’autres encore pourraient être complètement ignorées, tout dépend de la façon dont vous les avez codées.
Dans ce premier chapitre sur le déroulement du programme, nous allons regarder comment programmer votre code avec des instructions conditionnelles.
Les instructions conditionnelles sont un moyen de contrôler la logique et le déroulement de votre code avec des conditions.
Vous prenez tout le temps des décisions d’après des conditions dans votre vie quotidienne. Par exemple : S’il fait beau, je vais à la plage. Dans ce scénario, votre décision d’aller à la plage dépend du temps qu’il fait. Le temps qu’il fait est donc la condition.
Voyons comment ce type de logique fonctionne dans le code.
Définissez des conditions avec les instructions if/else
L’un des blocs essentiels à la structure d’un déroulement conditionnel est l’instruction if.
Avec une instruction if, vous pouvez exécuter certaines lignes de code uniquement si une certaine condition est vraie (True). Si cette condition est fausse (False), le code ne s’exécutera pas.
Par exemple, pour notre exemple sur le temps qu’il fait :
if ensoleille:
print("on va à la plage !")
La ligne 2 s’exécute uniquement si la condition ensoleille
est True.
Ça a l’air assez simple, alors quand est-ce que « else » entre en jeu ?
Gardons l’exemple du temps qu’il fait, et allons plus loin pour y ajouter une instruction « else » :
S’il fait beau dehors, je vais à la plage.
Sinon (par exemple s’il pleut), je reste à la maison !
Avec les instructions if/else dans Python, la syntaxe ressemble à ça :
if mon_booleen:
# exécuter le code quand mon_booleen est vrai
else:
# exécuter le code quand mon_booleen est faux
Donc pour afficher une instruction sous une certaine condition, vous pouvez suivre les étapes suivantes :
ensoleille = True
if ensoleille:
print("on va à la plage !")
else:
print("on reste à la maison !")
Dans cet extrait de code, puisque ensoleille
est vrai, vous verrez “on va à la plage !”
s’afficher dans votre terminal. Si sa valeur était fausse, le code afficherait “on reste à la maison !”
Définissez des conditions alternatives en ajoutant une clause elif
Les instructions if/elif/else vous permettent de définir des conditions multiples. Le mot-clé elif
vous permet d’ajouter autant de conditions que vous voulez. Vous devez ensuite terminer avec une instruction else.
Admettons que vous vouliez aller à la plage s’il fait chaud dehors, et que vous vouliez faire un bonhomme de neige s’il neige. Et sinon, vous restez à la maison. Vous pouvez coder tout ça avec la syntaxe ci-dessous :
ensoleille = False
neige = True
if ensoleille:
print("on va à la plage !")
elif neige:
print("on fait un bonhomme de neige")
else:
print("on reste à la maison !")
Ce code va vérifier si ensoleille
est vrai, et parce que c’est faux, il va vérifier si neige
est vrai. Comme neige
est vrai, le code va afficher “on fait un bonhomme de neige”
. Mais si neige
était aussi faux, le programme exécuterait l’instruction finale else, et afficherait “on reste à la maison !”
.
Définissez des conditions multiples avec des opérateurs logiques
Si vous voulez vérifier plusieurs conditions pour un seul résultat dans la même instruction if
, vous pouvez utiliser les opérateurs logiques :
and
: vérifie si deux conditions sont toutes les deux vraies.or
: vérifie si au moins une condition est vraie.not
: vérifie si une condition n’est pas vraie (c’est-à-dire fausse).
Ces opérateurs peuvent être combinés et mélangés selon vos besoins.
Admettons que vous vouliez aller à la plage seulement s’il y a du soleil ET que c’est le weekend. Mais s’il y a du soleil et que nous sommes au milieu de la semaine, vous devez être au travail.
avec_soleil = True
en_semaine = False
if avec_soleil and not en_semaine:
print("on va à la plage !")
elif avec_soleil and en_semaine:
print("on va au travail !")
else:
print("on reste à la maison !")
Définissez des conditions complexes avec des expressions comparatives
Les expressions comparatives vous permettent de comparer différentes expressions entre elles, et d’évaluer si une expression est vraie ou fausse.
Si vous avez deux valeurs,a
etb
, vous pouvez utiliser les opérateurs de comparaison suivants dans Python :
Égal à : a
==
bNon égal à : a
!=
bMoins que : a
<
bMoins que ou égal à : a
<=
bPlus que : a
>
bPlus que ou égal à : a
>=
b
Par exemple :
nombre_de_sieges = 30
nombre_dinvites = 25
if nombre_dinvites < nombre_de_sieges:
# autoriser plus d’invités
else:
# ne pas autoriser plus d’invités
Assigner à une variable :
nombre_de_sieges = 30
Tester si nombre_de_sieges est égal à 30 :
nombre_de_sieges == 30
Vous pouvez mélanger et combiner autant de ces outils que vous voulez pour avoir du code et des fonctionnalités plus complexes.
Simplifiez votre code avec les match cases
Le match est une fonctionnalité pour faciliter la comparaison de valeurs à l'aide de motifs. Le but est de simplifier la syntaxe de certaines structures courantes qui utilisent des blocs if, elif et else. Le match offre une alternative plus concise et plus lisible.
Découvrons les mots-clés utilisés dans cette nouvelle structure conditionnelle. Le mot-clé match
est utilisé pour indiquer le début d'un bloc de match case, suivi de la variable à évaluer. Le mot-clé case
est utilisé pour vérifier si une valeur donnée correspond à une condition spécifique dans ce bloc. Le symbole _
est utilisé pour définir une action à effectuer si aucune condition ne correspond.
Par exemple, si vous voulez tester la valeur d'une variable et exécuter une action différente pour chaque cas, vous pouvez utiliser le match. Imaginons que vous vouliez exécuter une action différente selon la valeur de la variable fruit :
fruit = "pomme"
match fruit:
case "pomme":
print("J'aime les pommes !")
case "banane":
print("Je n'aime pas les bananes.")
case "orange":
print("Les oranges sont bonnes pour la santé.")
case _:
print("Je ne connais pas ce fruit.")
Dans cet exemple, on teste la valeur de la variable fruit et on exécute une action différente pour chaque cas possible. Si fruit est égal à "pomme", on affiche "J'aime les pommes !". Si fruit est égal à "banane", on affiche "Je n'aime pas les bananes." et ainsi de suite. Si la variable fruit n'est égale à aucun des cas testés, on exécute la dernière action. C’est le cas par défaut, où le _
représente la valeur par défaut. Il est utilisé lorsque toutes les autres options de cas ne correspondent pas à la valeur testée.
Dans le screencast ci-dessous, nous allons découvrir l'efficacité du match case, et comment l'intégrer à votre code.
A vous de jouer
Contexte
Si vous faites cette activité, vous allez progresser. Sinon, vous allez rater une super opportunité. C’est le moment de pratiquer avec des conditions ! 😁
Vous allez créer une calculatrice qui permettra d'effectuer une opération simple entre deux nombres. Vous devrez donc créer deux variables pour stocker les deux nombres, et une variable pour stocker le symbole qui représentera l'opération à effectuer. Vous devrez d'abord créer une structure conditionnelle qui vérifiera la validité des variables et du symbole. Ensuite, vous devrez créer une deuxième structure conditionnelle pour effectuer l'opération en fonction du symbole choisi. Ne vous inquiétez pas, l’exercice sera guidé par des questions. C’est parti ! À vous de jouer !
Consignes
Créez deux variables
nombre_a_gauche
etnombre_a_droite
, et affectez-leur chacune un nombre entier.Créez une variable
symbole
pour stocker le symbole d'opération (+, -, * ou /).Créez une dernière variable
resultat
initialisée à 0, qui contiendra ensuite le résultat du calcul.Vérifiez que les deux variables
nombre_a_gauche
etnombre_a_droite
sont bien des nombres entiers. Si l'une ou les deux ne sont pas des entiers, affichez un message d'erreur correspondant et quittez le programme. (Aide : Utiliser la fonctionisinstance()
)Vérifiez que le symbole stocké dans la variable
symbole
correspond bien à une des 4 opérations autorisées (+, -, * ou /) à l’aide dumatch
. Si le symbole n'est pas correct, affichez un message d'erreur correspondant, et quittez le programme.Attention, il est impossible de diviser un nombre par 0, il faut donc prévoir une structure conditionnelle supplémentaire pour vérifier ce cas dans la structure
match
. Utilisez les conditions if-else pour réaliser cette opération ; s’il y a une division par 0, affichezErreur: impossible de diviser par zéro.
, sinon stockez le calcul dans la variableresultat
.Affichez le résultat contenu dans la variable
resultat
.
Une fois que vous avez terminé l'exercice, vous pouvez exécuter la commande suivante dans le terminal de VS code pytest tests.py
.
En résumé
Les instructions if/else vous aident à définir certaines conditions quand le code est exécuté.
Le mot-clé elif vous permet d’utiliser plusieurs conditions.
Vous pouvez grouper différentes conditions ensemble avec
and
,or
etnot
.Les opérateurs de comparaison comme
<
et>
vous permettent de comparer plusieurs variables.Le match case permet de simplifier la syntaxe de plusieurs conditions imbriquées.
Dans le chapitre suivant, vous allez apprendre comment répéter des tâches avec des boucles.
- Formations jusqu’à 100 % financées
- Date de début flexible
- Projets professionnalisants
- Mentorat individuel