Python au lycée (2) : Les instructions conditionnelles Exercices

Python : Appréciation d’un bulletin scolaire

Durée estimée
10 minutes
Difficulté
Votre progression

Créez un compte gratuit pour suivre votre avancement et reprendre où vous avez laissé.

Créer un compte

Objectif travaillé

Un professeur souhaite automatiser la saisie des appréciations sur les bulletins de ses élèves. Pour chaque note $ n $ sur $ 20 $, il souhaite afficher :

  • « Insuffisant » si $ n < 8 $ ;
  • « Passable » si $ 8 \leqslant n < 12 $ ;
  • « Bien » si $ 12 \leqslant n < 16 $ ;
  • « Excellent » si $ n \geqslant 16 $.
  1. Écrire une fonction Python nommée appreciation qui prend en argument une note $ n $ et renvoie la chaîne de caractères correspondante.
  2. Tester la fonction avec les notes suivantes : $ 5 $, $ 8 $, $ 11{,}5 $, $ 16 $ et $ 19 $.

Corrigé

  1. On enchaîne les conditions avec if, elif et else. L'ordre est important : on teste d'abord les valeurs les plus petites.

    def appreciation(n):
        if n < 8:
            return "Insuffisant"
        elif n < 12:
            return "Passable"
        elif n < 16:
            return "Bien"
        else:
            return "Excellent"
  2. On applique la fonction pour chaque note :

    • $ \text{appreciation}(5) $ renvoie « Insuffisant » car $ 5 < 8 $.
    • $ \text{appreciation}(8) $ renvoie « Passable » car $ 8 \geqslant 8 $ et $ 8 < 12 $.
    • $ \text{appreciation}(11{,}5) $ renvoie « Passable » car $ 11{,}5 < 12 $.
    • $ \text{appreciation}(16) $ renvoie « Excellent » car $ 16 \geqslant 16 $.
    • $ \text{appreciation}(19) $ renvoie « Excellent » car $ 19 \geqslant 16 $.

Remarque
Dans la branche elif n < 12, on n'a pas besoin d'écrire n >= 8 and n < 12 : la première branche a déjà traité le cas $ n < 8 $, donc lorsqu'on arrive à la deuxième branche, on sait que $ n \geqslant 8 $.