Instructions conditionnelles : if, elif, else

Définition, méthode pas à pas, exemple corrigé et exercice type contrôle de Seconde.

Maths Seconde Lecture : 5 min Programme officiel 2019

Les instructions conditionnelles permettent d'exécuter différentes séquences d'instructions en fonction de la véracité (vrai ou faux) d'une condition. En Python, on utilise les mots-clés if, elif (contraction de "else if") et else. Une condition est une expression qui évalue à True ou False (un booléen).

Bon réflexe : Toujours vérifier l'indentation et l'ordre des conditions pour s'assurer que le programme se comporte comme attendu.
1

Définir la condition principale

Utiliser if condition: pour la première condition à tester. Si cette condition est vraie, le bloc d'instructions indenté sous le if est exécuté.

2

Ajouter des conditions alternatives

Si la première condition est fausse, on peut tester d'autres conditions avec elif autre_condition:. On peut avoir plusieurs elif à la suite. Le premier elif dont la condition est vraie exécute son bloc d'instructions, et les elif suivants sont ignorés.

3

Gérer le cas par défaut

Si aucune des conditions précédentes (if ou elif) n'est vraie, le bloc d'instructions sous else: est exécuté. Le else est facultatif et doit être placé après tous les elif.

4

Indenter correctement

Les blocs d'instructions associés à if, elif et else doivent être indentés (généralement 4 espaces) par rapport à leur mot-clé. L'indentation est cruciale en Python pour définir la structure du code.

Écrire un programme Python qui demande à l'utilisateur son âge et affiche un message indiquant s'il est mineur, majeur, ou s'il a plus de 65 ans.
1
Demander l'âge à l'utilisateur
On utilise la fonction input() pour obtenir une chaîne de caractères, puis int() pour la convertir en nombre entier.
age = int(input("Quel est votre âge ? "))
2
Tester la condition "mineur"
Si l'âge est strictement inférieur à 18, la personne est mineure.
if age < 18:
    print("Vous êtes mineur.")
3
Tester la condition "plus de 65 ans"
Si la personne n'est pas mineure (donc 18 ans ou plus), on teste si elle a plus de 65 ans. On utilise elif.
elif age > 65:
    print("Vous avez plus de 65 ans.")
4
Gérer le cas par défaut "majeur"
Si l'âge n'est ni inférieur à 18, ni supérieur à 65, alors il est compris entre 18 et 65 (inclus). C'est le cas par défaut, géré par else.
else:
    print("Vous êtes majeur.")
Le programme complet est :
age = int(input("Quel est votre âge ? "))

if age < 18:
    print("Vous êtes mineur.")
elif age > 65:
    print("Vous avez plus de 65 ans.")
else:
    print("Vous êtes majeur.")
Si l'utilisateur entre 15, le programme affiche "Vous êtes mineur.". Si l'utilisateur entre 70, il affiche "Vous avez plus de 65 ans.". Si l'utilisateur entre 30, il affiche "Vous êtes majeur.".
  1. Oubli des deux points (:) après if, elif ou else. Cela provoque une erreur de syntaxe.
  2. Mauvaise indentation : les instructions à exécuter sous une condition doivent être indentées. Une indentation incorrecte peut entraîner des erreurs (IndentationError) ou un comportement inattendu du programme.
  3. Ordre des conditions : l'ordre des if/elif est important. Si une condition plus générale est placée avant une condition plus spécifique, la condition spécifique pourrait ne jamais être testée. Par exemple, si on testait age > 18 avant age > 65, la condition age > 65 ne serait jamais atteinte pour un âge de 70 ans, car 70 est déjà > 18.
  4. Utilisation de = au lieu de == pour la comparaison : = est l'opérateur d'affectation (pour donner une valeur à une variable), tandis que == est l'opérateur de comparaison (pour tester l'égalité). Utiliser if x = 5: est une erreur de syntaxe.
Écrire un programme Python qui demande à l'utilisateur de saisir un nombre entier. Le programme doit ensuite afficher si le nombre est positif, négatif ou nul.
  1. Écrire la première condition pour tester si le nombre est positif.
  2. Ajouter la condition pour tester si le nombre est négatif.
  3. Compléter le programme pour gérer le cas où le nombre est nul.
  1. Pour tester si le nombre est positif, on utilise if nombre > 0:.
    nombre = int(input("Entrez un nombre entier : "))
    
    if nombre > 0:
        print("Le nombre est positif.")
  2. Pour tester si le nombre est négatif, on ajoute une condition elif nombre < 0:.
    nombre = int(input("Entrez un nombre entier : "))
    
    if nombre > 0:
        print("Le nombre est positif.")
    elif nombre < 0:
        print("Le nombre est négatif.")
  3. Pour gérer le cas où le nombre est nul, on utilise else:, car si le nombre n'est ni positif ni négatif, il est nécessairement nul.
    nombre = int(input("Entrez un nombre entier : "))
    
    if nombre > 0:
        print("Le nombre est positif.")
    elif nombre < 0:
        print("Le nombre est négatif.")
    else:
        print("Le nombre est nul.")

Questions fréquentes

Peut-on imbriquer des conditions conditionnelles ?
Oui, il est tout à fait possible d'imbriquer des structures if/elif/else les unes dans les autres. L'indentation est alors encore plus importante pour maintenir la clarté du code et la bonne exécution des blocs d'instructions.
Quelle est la différence entre plusieurs if et un if/elif/else ?
Plusieurs if indépendants testent chaque condition, même si une condition précédente était vraie. Un bloc if/elif/else est séquentiel : dès qu'une condition est vraie, son bloc est exécuté et les conditions suivantes (elif et else) sont ignorées. C'est plus efficace et souvent plus logique pour des cas mutuellement exclusifs.
Quels sont les opérateurs de comparaison utilisables dans les conditions ?
Les principaux opérateurs de comparaison sont : == (égal à), != (différent de), < (inférieur à), > (supérieur à), <= (inférieur ou égal à), >= (supérieur ou égal à).
Peut-on combiner plusieurs conditions dans un seul if ?
Oui, on peut combiner des conditions avec les opérateurs logiques and (et) et or (ou). Par exemple, if age >= 18 and age <= 65:.

Le passage en Seconde est difficile ?

Adil accompagne les élèves de Seconde, à domicile dans le Val d'Oise ou en ligne. Un seul prof, du premier cours jusqu'au Bac.

06 20 13 00 82 Cours de maths en Seconde →