`if` et `else` : choisir un chemin
La structure `if`
if veut dire « si » en anglais :
solde = 5000
prix = 3000
if solde >= prix:
print("Paiement accepté")
solde = solde - prix
print("Merci de votre visite")
Décortiquons, mot par mot :
if: le mot-clé « si » ;solde >= prix: la condition, une comparaison qui vautTrueouFalse;:(deux-points) : obligatoire, il annonce « voici ce qu'il faut faire » ;- les lignes décalées vers la droite en dessous : le bloc, exécuté seulement si la condition est vraie ;
- la ligne
print("Merci..."), revenue tout à gauche : elle ne fait plus partie duif. Elle s'exécute toujours.
Si solde valait 2000, la condition serait fausse : Python sauterait tout le bloc, et afficherait seulement « Merci de votre visite ».
L'indentation : les espaces qui ont un sens
La règle : 4 espaces par niveau. Dans l'éditeur, la touche Tab insère 4 espaces, et après un : suivi d'Entrée, beaucoup d'éditeurs indentent tout seuls.
if note >= 10:
print("Admis") # dans le bloc : 4 espaces
print("Félicitations") # dans le bloc : 4 espaces aussi
print("Fin") # hors du bloc : 0 espace
Les deux erreurs typiques
1. Oublier le deux-points :
if note >= 10
^
SyntaxError: expected ':'
2. Une indentation incohérente :
IndentationError: unindent does not match any outer indentation level
ou expected an indented block quand rien n'est décalé après le :.
`else` : sinon
else veut dire « sinon ». Il donne un second chemin, pris quand la condition est fausse :
if solde >= prix:
print("Paiement accepté")
else:
print("Solde insuffisant")
elseest aligné sous leif, pas sous le bloc ;- il a lui aussi son
:et son bloc indenté ; - il n'a pas de condition : il prend tous les cas restants ;
- un seul des deux blocs s'exécute, jamais les deux, jamais aucun.
C'est comme un carrefour : on prend à gauche ou à droite.
solde >= prix ?
/ \
True False
| |
"Paiement accepté" "Solde insuffisant"
\ /
(la suite du programme)
Joue avec la condition
Lance, puis change la valeur de solde (essaie 2000, puis 3000) et relance. Observe quel bloc s'exécute.
solde = 5000
prix = 3000
if solde >= prix:
print("Paiement accepté")
solde = solde - prix
else:
print("Solde insuffisant")
print(f"Solde final : {solde} FCFA")
Exercice : Majeur ou mineur
Affiche Majeur si age vaut au moins 18, et Mineur sinon. Utilise if et else.
Voir une solution
age = 20 # donné
if age >= 18:
print("Majeur")
else:
print("Mineur")Dans l'appli, ton code est exécuté et corrigé automatiquement. Faire l'exercice
Exercice : La livraison gratuite
Une boutique en ligne offre la livraison à partir de 10000 FCFA d'achats. En dessous, la livraison coûte 1000 FCFA.
Range dans a_payer le montant total à payer (achats plus éventuelle livraison), puis affiche-le.
Voir une solution
achats = 8500 # donné
if achats >= 10000:
a_payer = achats
else:
a_payer = achats + 1000
print(a_payer)Dans l'appli, ton code est exécuté et corrigé automatiquement. Faire l'exercice
Exercice : Répare : deux-points et indentation
Ce programme contient deux erreurs de syntaxe. Lis les messages, corrige-les une par une.
Voir une solution
temperature = 35 # donné
if temperature > 30:
print("Il fait chaud")
else:
print("Il fait bon")Dans l'appli, ton code est exécuté et corrigé automatiquement. Faire l'exercice
Exercice : Un `if` sans `else`
Le else est facultatif. Ici, on veut la valeur absolue de n (le nombre sans son signe moins) : si n est négatif, on le change en son opposé ; sinon, on ne fait rien.
Écris un if sans else qui modifie n.
Voir une solution
n = -7 # donné
if n < 0:
n = -nDans l'appli, ton code est exécuté et corrigé automatiquement. Faire l'exercice
Exercice : Le distributeur de billets
Un client veut retirer retrait FCFA. Le distributeur accepte seulement si le solde est suffisant.
Si c'est accepté : retire le montant du solde et affiche Retrait accepté. Sinon : affiche Solde insuffisant sans toucher au solde.
Voir une solution
solde = 50000 # donné
retrait = 20000 # donné
if retrait <= solde:
solde -= retrait
print("Retrait accepté")
else:
print("Solde insuffisant")Dans l'appli, ton code est exécuté et corrigé automatiquement. Faire l'exercice
Teste-toi
Avec note = 8, qu'affiche ce code ?
python if note >= 10: print("Admis") print("Fin")
AdmispuisFin- Seulement
Fin(bonne réponse) - Seulement
Admis - Rien
Avec note = 8, qu'affiche ce code ?
python if note >= 10: print("Admis") print("Fin")
AdmispuisFin- Seulement
Fin - Rien du tout (bonne réponse)
- Une erreur
Cette fois, Fin est indenté : il fait partie du bloc. Comme la condition est fausse, tout le bloc est sauté. Quatre espaces changent le comportement du programme.