Section 4.4

Instructions conditionnelles

Dans cette section, nous allons apprendre à écrire des programmes qui peuvent décider ou non d'exécuter certaines parties de leur code en fonction du résultat de calculs.

Pour cela, nous allons utiliser des instructions conditionnelles. Une instruction conditionnelle est une structure de contrôle qui permet de décider si un bloc de code doit être exécuté ou non en fonction d'une condition.

Si : le mot-clé if

En Python, on utilise le mot-clé if pour créer une instruction conditionnelle. Voici un exemple de code qui utilise une instruction conditionnelle :

mot_de_passe = input("Entrez le mot de passe : ") if mot_de_passe == "1234": print("Mot de passe correct.") print("Bienvenue !") print("Fin du programme.")

À essayer

Essayez d'exécuter le programme ci-dessus. Qu'arrive-t-il si vous entrez le mot de passe 1234 ? Qu'arrive-t-il si vous entrez un autre mot de passe ?

Le programme commence par demander à l'utilisateur de saisir un mot de passe. Le mot de passe est ensuite stocké dans la variable mot_de_passe. Ensuite, on utilise la structure de contrôle if pour vérifier si le mot de passe est bien égal à 1234. Si c'est le cas, on affiche un message de bienvenue. Autrement, on ne fait rien. Ensuite, dans tous les cas, on affiche un message pour signifier la fin du programme.

La syntaxe d'une instruction conditionnelle est la suivante :

  • En premier, on inscrit le mot-clé if.
  • Ensuite, après un espace, on écrit un calcul : la condition. Ce calcul doit résulter en un booléen (True ou False).
  • Après la condition, on inscrit le symbole : (deux-points).
  • Ensuite, en dessous de cette ligne, viennent les lignes de code conditionnées. Ces lignes de code doivent être indentées (décalées vers la droite) par rapport à la ligne qui contient le mot-clé if. Toutes les lignes de code indentées de la même manière sont considérées comme faisant partie du bloc de code conditionné.

Lorsque le programme exécute une instruction conditionnelle, il commence par calculer la condition. Si le résultat est True, alors le programme exécute toutes les lignes du bloc de code indenté directement en dessous. Sinon, le programme ne fait rien de ces lignes de code indentées. Dans tous les cas, le programme continue son exécution après le bloc de code conditionné.

! Remarque

L'indentation est très importante en Python, plus que dans d'autres langages de programmation. En effet, c'est grâce à l'indentation que Python comprend la structure de votre code. Si vous ne respectez pas les règles d'indentation, vous obtiendrez une erreur de syntaxe.

En Python, on utilise généralement quatre espaces pour indenter les lignes de code. Dans la plupart des éditeurs de texte pour Python, lorsque vous appuyez sur la touche Tab, quatre espaces sont insérés.

Autrement : le mot-clé else

À l'aide du mot-clé else, on peut ajouter à une instruction conditionnelle if un bloc de code qui sera exécuté uniquement si la condition est fausse. Voici un exemple de code qui utilise une instruction conditionnelle avec un bloc else :

age = int(input("Entrez votre âge : ")) if age >= 18: print("Vous êtes majeur.") print("Vous pouvez voter.") else: print("Vous êtes mineur.") print("Vous ne pouvez pas encore voter.") print("Fin du programme.")

À essayer

Essayez d'exécuter ce programme avec différents âges et observez l'affichage obtenu. Qu'obtenez-vous lorsque l'âge entré est supérieur ou égal à 18 ? Qu'obtenez-vous lorsque l'âge entré est inférieur à 18 ?

Dans une structure conditionnelle avec un bloc else, la condition est toujours calculée en premier. Si le résultat est True, alors le programme exécute toutes les lignes du bloc de code indenté directement en dessous du if. Sinon, le programme exécute toutes les lignes du bloc de code indenté directement en dessous du else. Ensuite, dans tous les cas, le programme continue son exécution après cette structure conditionnelle.

Autrement-si : le mot-clé elif

Le mot-clé elif permet d'ajouter à une instruction conditionnelle if un bloc de code qui sera exécuté uniquement si la condition associée au if est fausse et qu'une condition associée au elif est vraie. Voici un exemple de code qui utilise une instruction conditionnelle avec un bloc elif :

n = int(input("Entrez un nombre entier : ")) if n > 0: print("Le nombre est positif.") elif n < 0: print("Le nombre est négatif.") else: print("Le nombre est nul.")

À essayer

Essayez d'exécuter ce programme avec différents nombres et observez l'affichage obtenu.

Il est même possible d'ajouter plusieurs blocs elif à une instruction conditionnelle. Dans ce cas, le programme exécute le bloc associé au premier if ou elif dont la condition est vraie. Si aucune condition n'est vraie, alors le programme exécute le bloc else, si un tel bloc existe. Voici un exemple :

age = int(input("Entrez votre âge : ")) if age >= 18: print("Vous pouvez conduire une voiture.") print("Super !") elif age >= 16: print("Vous pouvez conduire un scooter.") print("Bien !") elif age >= 14: print("Vous pouvez conduire un vélo-moteur.") print("Pas mal !") else: print("Vous ne pouvez pas encore conduire.") print("Dommage !") print("Au revoir !")

À essayer

Essayez d'exécuter ce programme avec différents âges et observez l'affichage obtenu.

Combiner les structures conditionnelles

Il est possible d'imbriquer plusieurs structures conditionnelles les unes dans les autres. Pour cela, il suffit d'augmenter l'indentation des lignes de code qui sont dans le bloc de code imbriqué. Cela permet de créer des structures conditionnelles plus complexes. Par exemple:

n = int(input("Entrez un nombre : ")) if n > 0: print("Le nombre est positif.") if n % 2 == 0: print("De plus, le nombre est pair.") else: print("De plus, le nombre est impair.") elif n == 0: print("Le nombre est exactement 0.") else: print("Le nombre est négatif.")

À essayer

Essayez d'exécuter ce programme avec différents nombres et observez l'affichage obtenu. Qu'obtenez-vous lorsque le nombre est positif ? Qu'obtenez-vous lorsque le nombre est négatif ? Qu'obtenez-vous lorsque le nombre est exactement 0 ? Est-ce que vous obtenez toujours le même affichage si le nombre est pair ou impair ? Si ce n'est pas le cas, pour quelles nombres obtenez-vous des affichages différents ?

De même, il est possible de suivre une structure conditionnelle par une autre structure conditionnelle (ou tout autre code), comme dans l'exemple suivant :

n = int(input("Entrez un nombre : ")) if n > 0: print("Le nombre est positif.") elif n < 0: print("Le nombre est négatif.") if n % 2 == 0: print("Le nombre est pair.") else: print("Le nombre est impair.") # Le programme pourrait même continuer ici.

À essayer

Essayez d'exécuter ce programme avec différents nombres et observez les différents affichages obtenus. Combien d'affichage différents pouvez-vous obtenir ?

Auto-évaluation

En Python, on utilise le mot-clé pour créer une structure conditionnelle. Il est possible d'ajouter un ou plusieurs blocs de code alternatifs grâce au mot-clé . Ce mot-clé est toujours suivi d'une condition. Enfin, il est possible d'ajouter un unique bloc à la fin d'une structure conditionnelle afin de définir quoi faire si aucune condition n'est vraie grâce au mot-clé .

Auto-évaluation

En Python, on utilise pour délimiter les blocs de code, comme par exemple les blocs de code d'une structure conditionnelle.

Auto-évaluation

Adaptez le programme suivant pour qu'il donne le bon affichage en fonction de l'âge entré par l'utilisateur.

age = int(input("Entrez votre âge : ")) if False: print("Vous êtes majeur.") print("Vous êtes mineur.")

Auto-évaluation

Complétez le programme suivant. Le programme doit demander à l'utilisateur de saisir deux nombres entiers et indique ensuite lequel des deux est le plus grand.

n1 = int(input("Entrez un nombre entier : ")) n2 = int(input("Entrez un autre nombre entier : ")) # À compléter

Si les deux nombres sont égaux, le programme doit aussi l'indiquer.

Dans cette section, nous avons vu comment créer des structures conditionnelles en Python. Nous avons vu comment utiliser les mots-clés if, elif et else pour créer des structures conditionnelles plus ou moins complexes.

Dans la section suivante, nous allons voir comment créer des boucles en Python. Les boucles permettent nous permettrons d'exécuter plusieurs fois un même bloc de code sans avoir à le réécrire à chaque fois.