ParcoursOuvrir l'appli

`if` et `else` : choisir un chemin

Python, les conditions · 45 min

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 :

  1. if : le mot-clé « si » ;
  2. solde >= prix : la condition, une comparaison qui vaut True ou False ;
  3. : (deux-points) : obligatoire, il annonce « voici ce qu'il faut faire » ;
  4. les lignes décalées vers la droite en dessous : le bloc, exécuté seulement si la condition est vraie ;
  5. la ligne print("Merci..."), revenue tout à gauche : elle ne fait plus partie du if. 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")

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 = -n

Dans 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")
  1. Admis puis Fin
  2. Seulement Fin (bonne réponse)
  3. Seulement Admis
  4. Rien
Avec note = 8, qu'affiche ce code ? python if note >= 10: print("Admis") print("Fin")
  1. Admis puis Fin
  2. Seulement Fin
  3. Rien du tout (bonne réponse)
  4. 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.