4 – Instructions conditionnelles : If … elif … else

4.1 Tests et conditions 

Jusqu’à présent nos programmes exécutaient toutes leurs instructions sans exception, ce qui ne laisse guère d’interactivité. Les instructions conditionnelles permettent  à notre programme d’exécuter, ou pas, une partie de ses instructions en fonction de certains critères exprimés sous forme d’expressions logiques (booléennes).

x égale à yx inférieur à yx inférieur ou égal à yx supérieur à yx supérieur ou égal à yx différent de y
x == yx < y
x <= yx > yx >= yx != y

Attention : il ne faut pas confondre :

  • l’opérateur de comparaison == pour tester l’égalité de deux valeurs.
  • l’opérateur d’affectation = utilisé pour affecter une valeur à une variable.

4.2 Syntaxe des structures conditionnelles

  • L’expression placée entre parenthèses est ce que nous appellerons désormais une condition. Notons que la condition a été placée entre parenthèses pour améliorer la lisibilité, mais que celles-ci ne sont pas indispensables.
  • Le « : » après la condition signifie alors. Notons que la ligne suivante est indentée (c’est-à-dire en retrait) par rapport à la précédente (4 espaces). Contrairement à d’autres langages il n’y a pas de symbole marquant le début et la fin du alors, c’est l’indentation qui joue ce rôle.
  • Si la condition est vraie, alors l’instruction indentée après le ‘ : ‘ est exécutée. Si la condition est fausse, rien ne se passe (ou encore le programme passe à la suite, s’il y a une suite).
  • Dans le cas où la condition n’est pas satisfaite, nous pouvons programmer une exécution alternative à l’aide de l’instruction else ( »sinon », en anglais).
  • Nous pouvons obtenir encore plus d’alternatives avec l’instruction elif (contraction de  » else if  ») :

  • Note : le même résultat aurait pu être obtenu avec le programme suivant :

Quel est l’intérêt selon vous d’utiliser plutôt un elif et un else ?

Attention :

  • à ne pas oublier les deux points qui signifie alors en fin de ligne du if, elif, else
  • à l’indentation des blocs

Exemple : Tester et expliquer le fonctionnement des scripts suivants :

 


Exercice : Mention Bac

Au baccalauréat, un candidat est :

    • Refusé si sa moyenne est inférieure stricte à 8.
    • Convoqué à l’oral de rattrapage si sa moyenne est comprise entre 8 et 10 (exclu).
    • Admis avec mention passable si sa moyenne est comprise entre 10 et 12 (exclu).
    • Admis avec mention assez bien si sa moyenne est comprise entre 12 et 14 (exclu).
    • Admis avec mention bien si sa moyenne est comprise entre 14 et 16 (exclu).
    • Admis avec mention très bien si sa moyenne est supérieure à 16.

Afin d’automatiser l’attribution des mentions, le Recteur d’académie vous commande un logiciel 07_mention.py qui :

    • demande à l’utilisateur la moyenne obtenue au baccalauréat.
    • renvoie si le candidat est refusé, convoqué ou admis ainsi que la mention le cas échéant.

Exercice  : Maximum de 3 nombres.

Écrire un programme 08_maximum.py qui prendra en entrée trois nombres réels a, b et c et qui renverra le maximum.

Contrainte d’efficacité :
vous n’avez le droit qu’à deux if pour traiter cet exercice, commencer par compléter l’algorithme ci-dessous.