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,aetb , vous pouvez utiliser les opérateurs de comparaison suivants dans Python : 

  • Égal à : a   ==  b

  • Non égal à : a   !=  b

  • Moins que : a   <  b

  • Moins que ou égal à : a   <=  b

  • Plus que : a   >  b

  • Plus 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

  1. Créez deux variables  nombre_a_gauche  et  nombre_a_droite  , et affectez-leur chacune un nombre entier.

  2. Créez une variable  symbole  pour stocker le symbole d'opération (+, -, * ou /).

  3. Créez une dernière variable  resultat  initialisée à 0, qui contiendra ensuite le résultat du calcul.

  4. Vérifiez que les deux variables  nombre_a_gauche  et  nombre_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 fonction  isinstance()  )

  5. Vérifiez que le symbole stocké dans la variable  symbole  correspond bien à une des 4 opérations autorisées (+, -, * ou /) à l’aide du  match. Si le symbole n'est pas correct, affichez un message d'erreur correspondant, et quittez le programme.

  6. 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, affichez  Erreur: impossible de diviser par zéro. , sinon stockez le calcul dans la variable  resultat.

  7. 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  et not  .

  • 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.

Et si vous obteniez un diplôme OpenClassrooms ?
  • Formations jusqu’à 100 % financées
  • Date de début flexible
  • Projets professionnalisants
  • Mentorat individuel
Trouvez la formation et le financement faits pour vous