Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Les conditions if, elif et else

Après cette leçon: Je peux faire choisir un programme avec if, elif et else.

Leçon de 55 min3 commandesLab Linux du quotidien : la trentaine de commandes que les ingénieurs tapent de tête

Le bon tarif au guichet du musée

Une condition if en Python permet à un programme de choisir : il exécute un bloc d’instructions seulement si un test est vrai. Avec elif et else, il choisit parmi plusieurs cas.

Un guichet de musée applique ce raisonnement toute la journée. Gratuit pour les petits, tarif réduit pour les jeunes, plein tarif pour les autres. Vous allez l’écrire.

À la fin de cette leçon

Remarque

Je peux faire choisir un programme avec if, elif et else.

Mots-clés

MotCe que ça veut direExemple
Conditionun test dont la réponse est vrai ou fauxage >= 18
Booléenune valeur qui vaut True ou False
Comparaisonun test entre deux valeurs==
Blocles lignes décalées qui suivent un if
Opérateur logiqueun mot qui relie des conditionsand

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Une comparaison répond vrai ou faux

Une comparaison met deux valeurs face à face. Sa réponse est un booléen, True ou False. Les six comparaisons sont ==, !=, <, >, <= et >=.

Attention : == pose la question « sont-elles égales ? ». Un seul = range une valeur dans une variable.

Exemple travaillé : six comparaisons avec age = 17

ÉcritureQuestion poséeRéponse
age == 17égal à 17 ?True
age != 17différent de 17 ?False
age < 18plus petit que 18 ?True
age > 18plus grand que 18 ?False
age <= 17plus petit ou égal à 17 ?True
age >= 18plus grand ou égal à 18 ?False

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Demander à Python si 17 atteint 18

Commande
python3 -c "age = 17; print(age >= 18)"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Erreur fréquente

Attention

Beaucoup pensent que = et == font le même travail. = range une valeur dans une variable. == compare deux valeurs. Dans un if, utilisez == : Python refuse if age = 18.

if, elif et else choisissent un bloc

if exécute un bloc seulement si sa condition est vraie. Le bloc est décalé de quatre espaces, après les deux-points. Les lignes décalées sont exactement ce qui dépend du test.

elif ajoute un second test, essayé seulement si le premier est faux. else prend tous les autres cas. Python s’arrête au premier bloc exécuté.

Un ticket de métro selon l’âge

Code: python
# Un ticket de métro selon l'âge.
age = 15
if age < 4:
    print("Gratuit")
elif age < 26:
    print("Tarif jeune")
else:
    print("Tarif plein")
# Changez age en 3, puis en 30, et relancez.

Écrire un tarif dans le labo

La première commande écrit un petit programme tarif.py dans le labo. La seconde le lance. Avec age = 20, le test age >= 18 est vrai.

Le terminal affiche donc Tarif plein. Le bloc du else n’est pas exécuté.

Écrire le fichier tarif.py

Commande
printf 'age = 20\nif age >= 18:\n    print("Tarif plein")\nelse:\n    print("Tarif reduit")\n' > tarif.py

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Lancer le programme

Commande
python3 tarif.py

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

and, or et not relient des conditions

Un seul test ne suffit pas toujours. and exige que les deux conditions soient vraies. or demande qu’une des deux le soit. not renverse la réponse.

Un musée peut dire : tarif réduit si l’âge est inférieur à 26 et si le visiteur est étudiant. On écrit age < 26 and etudiant.

Exemple travaillé : and, or et not

ABA and BA or Bnot A
TrueTrueTrueTrueFalse
TrueFalseFalseTrueFalse
FalseTrueFalseTrueTrue
FalseFalseFalseFalseTrue

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Relier deux conditions

Code: python
# Deux conditions reliées par and, or, not.
age = 20
etudiant = True
print(age >= 18 and etudiant)
print(age < 18 or etudiant)
print(not etudiant)
# Mettez etudiant = False : que devient la première ligne ?

Pour aller plus loin

Dans votre éditeur, écrivez un programme qui lit heure = 14. Il affiche « Ouvert » entre 9 et 18 heures, 18 exclu, et « Fermé » sinon.

Écrivez la condition avec and, puis avec or et not. Testez avec 8, 9, 17 et 18 : les bords sont l’endroit où l’on se trompe.

À propos de ce labo et de sa source: Lab Linux du quotidien : la trentaine de commandes que les ingénieurs tapent de tête

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.