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
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Condition | un test dont la réponse est vrai ou faux | age >= 18 |
| Booléen | une valeur qui vaut True ou False | |
| Comparaison | un test entre deux valeurs | == |
| Bloc | les lignes décalées qui suivent un if | |
| Opérateur logique | un mot qui relie des conditions | and |
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
| Écriture | Question posée | Réponse |
|---|---|---|
| age == 17 | égal à 17 ? | True |
| age != 17 | différent de 17 ? | False |
| age < 18 | plus petit que 18 ? | True |
| age > 18 | plus grand que 18 ? | False |
| age <= 17 | plus petit ou égal à 17 ? | True |
| age >= 18 | plus grand ou égal à 18 ? | False |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Demander à Python si 17 atteint 18
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
# 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
printf 'age = 20\nif age >= 18:\n print("Tarif plein")\nelse:\n print("Tarif reduit")\n' > tarif.pyAffiché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
python3 tarif.pyAffiché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
| A | B | A and B | A or B | not A |
|---|---|---|---|---|
| True | True | True | True | False |
| True | False | False | True | False |
| False | True | False | True | True |
| False | False | False | False | True |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Relier deux conditions
# 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.