cours
Instructions IF, ELIF et ELSE de Python
Lorsque vous écrivez du code dans n'importe quel langage, vous devez contrôler le flux de votre programme. C'est généralement le cas lorsqu'il s'agit de prendre des décisions - vous voudrez exécuter une certaine ligne de code si une condition est remplie, et une autre ligne de code si elle ne l'est pas. En Python, vous disposez pour cela des instructionsif, elif et else. Dans ce tutoriel, vous travaillerez avec un exemple pour vous familiariser avec l'instruction if simple et passerez progressivement aux instructions if-else puis if-elif-else. Vous apprendrez également ce qu'est l'imbrication et verrez un exemple de "if" imbriqué. Commençons....
Simple instruction if
Il s'agit de l'exemple le plus simple de déclaration conditionnelle. La syntaxe est la suivante :
if(condition):
indented Statement Block
Le bloc de lignes indentées de la même quantité après les deux points (:
) sera exécuté chaque fois que la condition est VRAIE.

Par exemple, disons que vous enregistrez le score d'un cours donné. La note totale est de 100 points, dont 50 points pour le travail théorique et 50 points pour le travail pratique. Vous souhaitez afficher un message d'erreur ou un avertissement si le score dépasse 100.
score_theory = 40
score_practical = 45
if(score_theory + score_practical > 100):
print("Invalid score. Please check the input.")
Les deux points (:
) sont importants car ils séparent la condition des instructions à exécuter après l'évaluation de la condition. Ceci est particulièrement important pour les déclarations où il n'y a qu'une seule déclaration et où la parenthèse ( )
n'est pas utilisée. Par exemple :
score_theory = 40
score_practical = 45
if score_theory + score_practical > 100: # End of condition
print("Invalid score. Please check the input.")
L'instruction if ci-dessus vérifie la condition "if" et détermine que l'instruction (40 + 45 = 85) > 100 est FAUSSE et n'affiche donc pas l'avertissement. Rendons l'affirmation FAUSSE et voyons ce qui se passe :
score_theory = 50
score_practical = 55
if(score_theory + score_practical >= 100):
print("Invalid score. Please check the input.")
Invalid score. Please check the input.
Supposons que vous souhaitiez aller plus loin et afficher une déclaration lorsque le score total se situe dans la fourchette, c'est-à-dire qu'il est inférieur à 100. C'est à ce moment-là que l'instruction if-else peut s'avérer utile.
Test unique : déclaration if-else
L'instruction if-else est utilisée pour coder de la même manière qu'en anglais. La syntaxe de l'instruction if-else est la suivante :
if(condition):
Indented statement block for when condition is TRUE
else:
Indented statement block for when condition is FALSE

Essayons de travailler sur le code ci-dessus et de redéfinir le problème : Lorsque vous enregistrez la note de certains cours, vous devez additionner les points de la partie théorique et de la partie pratique pour obtenir la note totale. Si le score total est inférieur à 100, vous voulez afficher un message "Score correct", et si ce n'est pas le cas, un avertissement comme précédemment.
score_theory = 40
score_practical = 45
if(score_theory + score_practical > 100):
print("Please check the input. Score exceeds total possible score.")
else:
print("Score validated. Your total is: ", score_theory + score_practical)
Score validated. Your total is: 85
Conseil : Si vous n'avez qu'une ligne de code à exécuter plutôt que plusieurs lignes dans le code suivant la condition, vous pouvez tout placer dans la même ligne. Il ne s'agit pas d'une règle, mais d'une pratique courante parmi les codeurs. Réécriture du code ci-dessus dans ce style :
score_theory = 40
score_practical = 45
# Single statement: if(condition): Statement for when condition is true
if (score_theory + score_practical > 100): print("Please check the input. Score exceeds total possible score.")
# Single statement: if(condition): Statement for when condition is false
else: print("Score validated. Your total is: ", score_theory + score_practical)
Score validated. Your total is: 85
Imaginez maintenant un cas où l'un des scores dépasse 50, mais où le total reste inférieur à 100. Que pensez-vous qu'il se passerait alors ?
score_theory = 60
score_practical = 40
if(score_theory + score_practical > 100):
print("Please check the input. Score exceeds total possible score.")
else:
print("Score validated. Your total is: ", score_theory + score_practical)
Score validated. Your total is: 100
C'est une erreur, car vous savez que la limite maximale des notes individuelles pour la théorie ou la pratique ne doit pas dépasser 50. Comment pouvez-vous représenter cela en code ? La réponse : l'instruction if-elif-else.
Tests multiples : Déclaration if-elif-else de Python
Décomposons le problème que nous avons rencontré jusqu'à présent et essayons de le formuler avant de nous lancer dans le code.
-
Étape 1. Introduisez les deux scores :
score_theory
etscore_practical
-
Étape 2. Vérifiez qu'aucun des deux scores ne dépasse le score maximum possible, c'est-à-dire 50. Cela résout également le problème de la note totale qui ne dépasse pas 10. Si l'un ou l'autre est supérieur à 50, affichez l'avertissement et sortez.
- 2.1 Vérifier si
score_theory
- 2.2 Vérifier si
score_practical
- 2.1 Vérifier si
-
Étape 3. Si aucun des deux ne dépasse le score, affichez un "Score ok" et quittez.
# Step 1
score_theory = 60
score_practical = 20
if(score_theory > 50):
print("Please check the input score for 'Theory'.") # Step 2.1
elif(score_practical > 50):
print("Please check the input score for 'Practical'.") # Step 2.2
else:
print("Score validated. Your total is: ",score_theory + score_practical) # Step 3
Please check the input score for 'Theory'.
La syntaxe suivie par l'instruction if-else-if est la suivante :
if(Condition1):
Indented statement block for Condition1
elif(Condition2):
Indented statement block for Condition2
else:
Alternate statement block if all condition check above fails

En fait, une manière élaborée de voir l'effet de l'instruction Python if-elif-else comme une simple instruction if-else est de l'écrire comme ci-dessous :
score_theory = 60
score_practical = 20
if(score_theory > 50):
print("Please check the input score for 'Theory'.")
else:
if(score_practical > 50):
print("Please check the input score for 'Practical'.")
else:
print("Score validated. Your total is: ",score_theory + score_practical)
Please check the input score for 'Theory'.
L'instruction elif facilite en fait l'écriture du code. Imaginez que l'énoncé du problème devienne plus complexe, le suivi de chaque instruction if-else à l'intérieur d'une autre instruction if pourrait facilement devenir un cauchemar !
Travaillons encore sur le même exemple. Imaginez maintenant que vous souhaitiez garder une trace de plusieurs travaux de cours, par exemple : Science" et "Anglais". Le score total pour les deux reste le même, c'est-à-dire 100. Cependant, pour les sciences, la répartition entre théorie et pratique est de 50-50, mais pour l'anglais, la répartition est de 60-40. Pourriez-vous toujours utiliser les formats ci-dessus ?
OUI ! Et vous pouvez le faire facilement grâce au concept des instructions "if" imbriquées.
Les instructions if imbriquées de Python
Lorsque vous avez une instruction if à l'intérieur d'une autre instruction if, on parle d'imbrication dans le monde de la programmation. Il ne doit pas nécessairement s'agir d'une simple instruction "if", mais vous pouvez utiliser le concept d'instructions "if", "if-else" et même "if-elif-else" combinées pour former une structure plus complexe.
Codons l'exemple présenté ci-dessus :
coursework = "English"
score_theory = 53
score_practical = 35
if(coursework == "Science" or coursework == "science"):
if(score_theory > 50):
print("Please check the input score for 'Science: Theory'.")
elif(score_practical > 50):
print("Please check the input score for 'Science: Practical'.")
else:
print("Score validated for Science. Your total is: ",score_theory + score_practical)
elif(coursework == "English" or coursework == "english"):
if(score_theory > 60):
print("Please check the input score for 'English: Theory'.")
elif(score_practical > 40):
print("Please check the input score for 'English: Practical'.")
else:
print("Score validated for English. Your total is: ",score_theory + score_practical)
else: print("Coursework not recognised. Please enter score for either Science or English.")
Score validated for English. Your total is: 88
Vous avez remarqué l'utilisation de or
dans le code ci-dessus ? Il est utilisé de manière à évaluer "Science" et "science" comme le même travail de cours, et il en va de même pour "English" et "english". Vous pouvez utiliser des instructions booléennes telles que or, et pour combiner plusieurs conditions. Mais vous devez faire attention à comprendre la sortie booléenne de ces instructions combinées pour réaliser pleinement le flux de contrôle de votre programme.
Nous pouvons réécrire le code ci-dessus pour vérifier les scores dans la même instruction, mais cela rend parfois le code difficile à lire et les instructions difficiles à déboguer.
coursework = "English"
score_theory = 53
score_practical = 78
if(coursework == "Science" or coursework == "science"):
if(score_theory > 50 or score_practical > 50):
# Can't distinguish the error in Science: theory or Science: Practical
print("Please check the input score for Science.")
else: print("Score validated for Science. Your total is: ",score_theory + score_practical)
elif(coursework == "English" or coursework == "english"):
if(score_theory > 60 or score_practical > 40):
# Can't distinguish the error in English: theory or English: Practical
print("Please check the input score for English.")
else: print("Score validated for English. Your total is: ",score_theory + score_practical)
else: print("Coursework not recognised. Please enter score for either Science or English.")
Please check the input score for English.
Voilà !
Dans ce tutoriel, vous avez abordé l'un des principaux mécanismes de flux de contrôle disponibles en Python. Vous avez travaillé avec un exemple à plusieurs niveaux pour voir les variations de l'humble instruction if en action. Pour en savoir plus sur Python, consultez le cours Intro to Python for Data Science de DataCamp.
FAQ sur IF, ELIF et ELSE en Python
Qu'est-ce que l'instruction if en Python ?
L'instruction if
est utilisée pour exécuter un bloc de code si une certaine condition est remplie.
Comment utiliser l'instruction elif en Python ?
L'instruction elif
(abréviation de "else if") est utilisée pour spécifier des conditions supplémentaires à tester après l'instruction if initiale. Si la condition de l'instruction if
est fausse et que la condition de l'instruction elif
est vraie, le bloc de code associé à l'instruction elif sera exécuté.
Puis-je avoir plusieurs instructions elif dans un seul bloc if ?
Oui, vous pouvez avoir plusieurs déclarations elif
dans un seul bloc if
.
Qu'est-ce que l'instruction else en Python ?
L'instruction else
est utilisée pour spécifier un bloc de code qui doit être exécuté si aucune des conditions des instructions if
et elif
précédentes n'est vraie.
Puis-je utiliser l'instruction else sans aucune instruction if ou elif ?
Non, la déclaration else
doit être utilisée en conjonction avec une déclaration if
. Il ne peut pas être utilisé seul.
Cours de Python
cours
Introduction à la science des données en Python
cours