Chapitre 2 - Les conditions
Les structures de contrôle conditionnelles (ou plus simplement conditions) vont nous permettre d’exécuter différents blocs de code selon qu'une condition spécifique soit vérifiée ou pas.
Nous allons très souvent utiliser les conditions avec des variables : selon la valeur stockée dans une variable, nous allons vouloir exécuter un bloc de code plutôt qu'un autre.
Dans les conditions, l'expression a toujours une valeur booléenne (True ou False).
Python nous fournit les structures conditionnelles suivantes :
1. La condition if ("si")
if (expression): # ne pas oublier le signe de ponctuation ':'
instructions # attention à l'indentation
#suite du programme
Exemple:
chaine = input("Note sur 20 : ")
note = float(chaine)
if note>=10.0:
print("J'ai la moyenne")
print("Fin du programme")
2. La condition if...else ("si...sinon")
if (expression): # ne pas oublier le signe de ponctuation ':'
instructions1 # attention à l'indentation
else:
instructions2
#suite du programme
Exemple:
chaine = input("Note sur 20 : ")
note = float(chaine)
if note>=10.0:
# ce bloc est exécuté si l'expression (note>=10.0) est vrai
print ("J'ai la moyenne")
else:
# ce bloc est exécuté si l'expression (note>=10.0) est fausse
print("C'est en dessous de la moyenne")
print("Fin du programme")
Pour traiter le cas des notes invalides (\(<0\) ou \(>20\)), on peut imbriquer des instructions conditionnelles :
chaine = input("Note sur 20 : ")
note = float(chaine)
if note>20.0 or note<0.0:
# ce bloc est exécuté si l'expression (note>20.0 or note<0.0) est vrai
print("Note invalide!")
else:
# ce bloc est exécuté si l'expression (note>20.0 or note<0.0) est fausse
if note>=10.0:
# ce bloc est exécuté si l'expression (note>=10.0) est vrai
print("J'ai la moyenne")
else:
# ce bloc est exécuté si l'expression (note>=10.0) est fausse
print("C'est en dessous de la moyenne")
print("Fin du programme")
3. La condition if...elif...else ("si..."sinon_si"... sinon")
if (expression): # ne pas oublier le signe de ponctuation ':'
instructions1 # attention à l'indentation
elif:
instructions2
elif:
instructions3
else:
instructions4
#suite du programme
Si l'expression 1 est vraie alors le bloc d'instructions 1 est exécuté, et on passe à la suite du programme.
Si l'expression 1 est fausse alors on teste l'expression 2 :
-
si l'expression 2 est vraie on exécute le bloc d'instructions 2, et on passe à la suite du programme.
-
si l'expression 2 est fausse alors on teste l'expression 3, etc.
Le bloc d'instructions 4 est donc exécuté si toutes les expressions sont fausses (c'est le bloc "par défaut").
Parfois il n'y a rien à faire.
Dans ce cas, on peut omettre l'instruction else :
if (expression1):
instructions1
elif (expression2):
instructions2
elif (expression3):
instructions3
# suite du programme
Exemple:
# ce script fait la même chose que le programme précédent
note = float(input("Note sur 20 : "))
if note<10.0 and note>0.0:
print("C'est en dessous de la moyenne")
elif note>=10.0 and note<20.0: # ou bien : elif 10.0 <= note < 20.0:
print("J'ai la moyenne")
else:
print("Note invalide !")
print("Fin du programme")
4. Exercices
Exercice 2.1 ★
Le numéro de sécurité sociale est constitué de 13 chiffres auquel s'ajoute la clé de contrôle (2 chiffres).
La clé de contrôle est calculée par la formule : 97 - (numéro de sécurité sociale modulo 97)
Écrire un script qui contrôle la validité d'un numéro de sécurité sociale.
On pourra utiliser la fonction int()pour convertir le type str en type int.
Exemple :
>>>
Entrer votre numéro de sécurité sociale (13 chiffres) --> 1891126108268
Entrer votre clé de contrôle (2 chiffres) --------------> 91
Votre numéro de sécurité sociale est valide.
>>>
Entrer votre numéro de sécurité sociale (13 chiffres) --> 2891126108268
Entrer votre clé de contrôle (2 chiffres) --------------> 91
Votre numéro de sécurité sociale est INVALIDE !
>>>
Exercice 2.2 ★
Écrivez un programme pour trouver un maximum entre trois nombres en utilisant une if-else ou if imbriquée.
Exercice 2.3 ★
Écrivez un programme pour vérifier si un nombre est divisible par 3 et 13 ou non, en utilisant if-else.
Exercice 2.4 ★
Écrivez un programme pour vérifier si un alphabet est une voyelle ou une consonne en utilisant if-else. Les lettres a, e, i, o et u en minuscules et en majuscules sont appelées voyelles. Les alphabets autres que les voyelles sont appelés consonnes.
Exercice 2.5 ★
Écrire un script qui demande la note au bac et qui affiche la mention correspondante.
Par exemple:
>>>
Note au bac (sur 20) : 13.5
Bac avec mention Assez Bien
>>>
Note au bac (sur 20) : 10.9
Bac avec mention Passable
>>>
Note au bac (sur 20) : 4
Recalé
>>>
Exercice 2.6 ★
Écrire un script qui calcule l\'indice de masse corporelle (IMC) d'un adulte et qui en donne l'interprétation (corpulence normale, surpoids...).
Par exemple :
>>>
Votre taille en cm ? 170
Votre masse en kg ? 68.5
IMC = 23.7024221453 kg/m²
Interprétation : corpulence normale
>>>