Aller au contenu

Chp C. Les conditions IF ... ELSE

La notion de bloc d'instructions est très importante en python. Voici comment on définit un bloc:

Blocs en python

En python, les espaces en principe de ne sont pas importants, SAUF les espaces situés en début de ligne. Ceux-ci s'appellent des indentations, ils servent à délimiter des blocs d'instructions. Il n'y a pas de parenthèses ou de crochets pour délimiter les blocs, mais simplement des espaces en début de ligne. C'est une notion importante à retenir. Exemple :

1
2
3
4
Une ligne d'instruction
    Une première ligne indentée
    Une deuxième ligne indentée
Une autre ligne d'instruction

Les lignes 2 et 3 sont indentées et font partie du même bloc d'instructions. La ligne 4 n'est pas indentée et ne fait pas partie de ce bloc.

Dans un programme il arrivera souvent que l'exécution dépende de la valeur de certaines variables. Voyons rapidement comment cela se présente en python.

1. Les tests simples

La syntaxe en python est plutôt naturelle :

Tests simples

if condition :
    bloc d'instructions
else :
    bloc d'instructions

Remarques :

  1. noter la présence du symbole « : » à la fin des lignes qui introduisent un condition. On retrouvera cette écriture avec les boucles et les fonctions...

  2. noter aussi la présence d'une indentation, c'est à dire les 4 espaces situés en début de ligne pour déterminer le bloc d'instructions. C'est une notion importante en python que l'on utilisera tout le temps. En principe avec un bon éditeur, quand vous terminez une ligne par « : » et que vous validez avec [enter], l'indentation se fait automatiquement.

  3. noter enfin que la partie "sinon" (else) est facultative.

Exemple d'utilisation d'une condition

Si l'on exécute le code :

note = 15
if note >= 10 :
    print("Vous avez eu la moyenne, bravo !")
else :
    print("Vous n'avez pas eu la moyenne,")
    print("il faut travailler un peu plus !")

Le programme affichera : Vous avez eu la moyenne, bravo !

Tester le code précédent en changeant la valeur de la variable note pour voir comment le programme réagit:

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier

2. Les tests imbriqués

On peut imbriquer plusieurs conditions successivement avec le mot clé elif qui est la contraction de else if (sinon si...)

Tests imbriqués

if condition 1 :
    bloc d'instructions 1
elif condition 2 : # cela signifie 'sinon si ...
    bloc d'instructions 2
...
elif condition n :
    bloc d'instructions n
else : # si aucune des conditions précédentes...
    bloc d'instructions

Exemple de tests imbriqués

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# on définit ci dessous quelques variables
P, AB, B, TB = 10, 12, 14, 16 # rem : plusieurs variables sur la même ligne !
note = 13
if note >= TB :
    print("Mention TB")
elif note >= B :
    print("Mention B")
elif note >= AB :
    print("Mention AB")
elif note >= P :
    print("Mention P")
else :
    print("Refusé")

Bien entendu, le programme affichera dans ce cas : Mention AB

Remarque : en ligne 2, noter la syntaxe pour définir plusieurs variables sur la même ligne; Il vaut mieux ne pas abuser de cette syntaxe, mais parfois c'est pratique pour regrouper des variables qui jouent le même rôle.

3. Les opérateurs de comparaison

Les tests utilisables pour nos conditions sont les suivants :

Les opérateurs de comparaison

  • Égalité : a == b
  • Différence : a != b
  • Inférieur strict : a < b
  • Supérieur strict : a > b
  • Inférieur ou égal : a <= b
  • Supérieur ou égal : a >= b

Remarques : ces opérateurs fonctionnent bien entendu avec des variables de type numérique, mais ils peuvent aussi fonctionner avec d'autres types. Par exemple, si a et b sont de type str(chaîne de caractères), la comparaison se fera par ordre lexicographique (alphabétique).

4. Compléments

Pour davantage de détails on peut consulter :

Ressources complémentaires

  • La section relative aux conditions sur W3school

5. TD C : if ... else

On va ici travailler assez succinctement la notion de condition.

TD C1 : Conditions IF ... ELSE

TD C1 version interactive capytale

Versions html : Énoncé et Correction