Définition
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).
Méthode : Instructions conditionnelles : if, elif, else
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é.
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.
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.
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.
Exemple résolu
input() pour obtenir une chaîne de caractères, puis int() pour la convertir en nombre entier.age = int(input("Quel est votre âge ? "))if age < 18:
print("Vous êtes mineur.")elif.elif age > 65:
print("Vous avez plus de 65 ans.")else.else:
print("Vous êtes majeur.")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.".Piège fréquent en Seconde : Indentation et ordre des conditions
- Oubli des deux points (
:) aprèsif,elifouelse. Cela provoque une erreur de syntaxe. - 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. - Ordre des conditions : l'ordre des
if/elifest 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 testaitage > 18avantage > 65, la conditionage > 65ne serait jamais atteinte pour un âge de 70 ans, car 70 est déjà> 18. - 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é). Utiliserif x = 5:est une erreur de syntaxe.
Exercice type contrôle
É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.- Écrire la première condition pour tester si le nombre est positif.
- Ajouter la condition pour tester si le nombre est négatif.
- Compléter le programme pour gérer le cas où le nombre est nul.
- 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.") - 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.") - 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 ?
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 ?
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 ?
== (é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 ?
and (et) et or (ou). Par exemple, if age >= 18 and age <= 65:.Pour aller plus loin
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.