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 |
|
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 :
-
noter la présence du symbole « : » à la fin des lignes qui introduisent un condition. On retrouvera cette écriture avec les boucles et les fonctions...
-
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.
-
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:
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 |
|
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
# Tests
(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)