NSI · Première

L'instruction conditionnelle if

Prendre des décisions dans les programmes avec if, else et elif, indenter correctement et s'entraîner sur des cas pratiques.

Instruction conditionnelle if

Une structure conditionnelle permet d'exécuter différents blocs d'instructions en fonction du résultat (vrai ou faux) d'une expression de comparaison.

La logique globale est la suivante :

Python
1
2
3
4
si expression:
suite_instruction1
sinon:
suite_instruction2

Si l'expression s'évalue à True, le premier bloc est exécuté. Si elle est False, c'est le second bloc (sous le else:) qui s'exécute. Les blocs de code doivent être obligatoirement indentés.

Activité

Activité 33 : Analyse de flux

Observez attentivement le script suivant :

Python
1
2
3
4
5
6
7
8
9
10
11
a = 4
b = 7
if a < b:
print("Je suis toto.")
print("Je n'aime pas titi.")
else:
print("Je suis titi.")
print("Je n'aime pas toto.")
print("En revanche, j'aime le Python.")

Quel sera le résultat affiché à l'écran lors du lancement de ce script ? Saisissez-le et testez-le pour valider votre intuition.

Activité

Activité 34 : Écrire un test de majorité

Écrire une fonction test_majorite(age) qui prend en paramètre un nombre entier représentant l'âge.

  • Si l'âge est supérieur ou égal à 18 ans, elle doit renvoyer : "Bonjour, vous êtes majeur."
  • Si l'âge est inférieur à 18 ans, elle doit renvoyer : "Bonjour, tu es mineur."
Activité

Activité 35 : Annonce de trains

Examinez la fonction suivante :

Python
1
2
3
4
5
6
def annonce(num, prov, dest):
if dest != "0":
msg = f"le train n° {num} en provenance de {prov} et à destination de {dest}, entre en gare."
else:
msg = f"le train n° {num} en provenance de {prov} entre en gare. Ce train est terminus Triffouillis-les-Oies."
return msg
  1. Qu'affiche la console si l'on appelle annonce("4557", "Paris", "Marseille") ?
  2. Qu'affiche-t-elle pour annonce("5768", "Bonneville", "0") ?
Activité

Activité 36 : Facturation avec remise

Vous êtes gérant d'un magasin. Vous voulez écrire un programme qui calcule le montant d'une facture. Si un client achète au moins 5 fois le même article, il bénéficie d'une remise de 5 % sur le montant total de cet article.

Écrire une fonction calculer_facture(prix_unitaire, quantite) qui prend en paramètres le prix unitaire et le nombre d'articles achetés, et renvoie le montant de la facture finale.

Les cas multiples : utilisation de elif

Lorsqu'on doit tester de multiples conditions exclusives, imbriquer plusieurs if ... else peut rendre le code illisible à cause des décalages d'indentation successifs.

Exemple d'imbrications successives complexes :

Python
1
2
3
4
5
6
7
8
9
if moyenne < 8:
print("raté")
else:
if moyenne < 10:
print("repêchage")
else:
if moyenne < 12:
print("admis")
...

Pour résoudre ce problème de lisibilité, Python propose l'instruction de contraction elif (contraction de *else if* - sinon si) :

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
moyenne = 13
if moyenne < 8:
print("raté")
elif moyenne < 10:
print("repêchage")
elif moyenne < 12:
print("admis")
elif moyenne < 14:
print("mention AB")
elif moyenne < 16:
print("mention B")
else:
print("mention TB")
Exercice

Exercice : Compter les voyelles (Challenge)

Écrire un programme permettant de compter le nombre de voyelles présentes dans la phrase suivante : "cet exercice est prodigieusement ennuyeux" *(Indice : vous pouvez utiliser une boucle pour parcourir les lettres et un test conditionnel if pour vérifier si la lettre courante est dans les voyelles.)*

Avez-vous compris ce chapitre ?

Cochez-le pour l'enregistrer dans votre progression d'apprentissage.