IF, ELIF, ELSE en Python : code, syntaxe et exemple des conditions
La condition IF est un outil indispensable en data analyse. Découvre tout ce qu’il faut savoir pour utiliser les clauses IF, ELIF et ELSE !
En langage Python, la clause IF permet d’exécuter une instruction seulement si une condition est respectée. En pratique, Python teste lui-même la condition que tu lui proposes et, selon le résultat, applique ou non les instructions que tu as rédigées. La clause IF peut être complétée par les clauses ELIF et ELSE, qui indiquent à Python quoi faire dans le cas où la condition n’est pas respectée.
Condition IF
En langage Python, une condition IF (“si” en anglais) permet d’exécuter une ou plusieurs instructions spécifiques seulement si une condition est vérifiée. Python est capable de répondre à une question simple et selon la situation, il décide ensuite quelle(s) action(s) il va exécuter.
Une condition IF est couramment utilisée en data analyse car elle permet d’écrire un programme plus agile et plus autonome. Il ne s’agit pas d’intelligence artificielle, le développeur reste parfaitement maître des paramètres. La clause IF permet de présenter plusieurs routes et d’indiquer à Python comment choisir selon la situation qu’il rencontre.
Remarque : si la condition n’est pas respectée, il est possible de faire en sorte que Python exécute une autre série d’instructions. On utilise pour cela les clauses ELSE et ELIF, on en reparle plus loin dans cet article !
{{cours-gratuit-python="/brouillon"}}
Une condition IF se rédige ainsi :
Il faut faire attention à deux choses lorsqu’on rédige une condition IF.
- la première ligne se termine toujours par deux points “:”
- le bloc de code qui constitue les instructions doit être indiqué par une indentation, c'est-à-dire un léger décalage vers la droite. C’est comme cela que Python fait la différence entre ce qui est concerné par la condition IF, et le reste du programme.
On obtient une indentation avec 4 espaces ou en tapant sur la touche “tab”.
Voici un exemple simple qui affiche ou non une phrase en fonction de la valeur de la variable x.
Python connaît la valeur de la variable x (x vaut 3), et on lui demande de tester si cette valeur est inférieure à 5. Comme c’est effectivement le cas, Python applique l’instruction qui est juste en dessous.
Cette instruction est d’afficher la phrase “x est inférieur à 5”. En output, on a donc les mots “x est inférieur à 5”.
Si la valeur de x était supérieure ou égale, la condition IF ne serait pas remplie : Python n’exécute pas l’instruction associée. On aurait donc en output un écran vide, signifiant simplement que Python n’a rien fait.
Tu te demandes en quoi la condition IF est utile dans un contexte business ? Prenons un exemple.
Imaginons qu’une entreprise de télémarketing offre une prime à ses commerciaux en fonction des ventes réalisées. Cette entreprise décide d’accorder un bonus de 200€ à tout commercial qui effectue plus de 50 ventes en un mois.
Pour déterminer si un commercial mérite ou non un bonus, on peut utiliser une condition IF. On utilise la variable “ventes_du_mois” (qui représente le nombre de ventes effectuées par le commercial dans le mois).
Remarque
En langage Python, le symbole “>=” signifie “supérieur ou égal à” (voir plus bas)
Grâce à Python, il est possible de relier ton programme au logiciel de gestion des ventes. Après avoir associé à la variable “ventes_du_mois” le nombre de ventes réalisées par un commercial dans le mois en cours, Python peut calculer la prime accordée.
Si l’équipe est composée de nombreux commerciaux, ce programme fait gagner beaucoup de temps (tout en limitant les erreurs humaines).
Face à la quantité grandissante de données à exploiter, les entreprises ont besoin d'internaliser les compétences d'un data analyst. Que tu sois en recherche d'emploi ou en poste, DataBird propose plusieurs formation adaptées à ton emploi du temps.
Les opérateurs d’une condition IF en Python
La condition IF commence toujours par un test logique. Python peut y répondre car il s’agit d’une question fermée : la réponse est “vrai” ou “faux”.
Pour poser une condition en langage Python, tu peux utiliser plusieurs types d’opérateurs.
Les opérateurs de comparaison
Les opérateurs de comparaison sont similaires à ceux que tu as étudiés en mathématiques au collège. Ils permettent de comparer deux variables.
Voici quelques exemples :
- Si la variable x vaut 3 : la condition x==3 est vérifiée et la condition x != 4 aussi. En revanche, la condition x != 3 est fausse.
- Si la variable y vaut 10 : y >= 10 est vérifiée. En revanche, y > 10 ne l’est pas ! En effet, y est supérieur ou égal à 10. Mais y n’est pas strictement supérieur à 10.
Remarque : les opérateurs fonctionnent sur les chiffres et aussi sur les mots ! En effet, Python propose plusieurs types de variables : les integer (nombres entiers), les float (nombres à virgule) et les string (chaînes de caractères). Un mot est considéré comme une chaîne de caractères.
Par exemple, si la variable prénom = ‘Lili’, alors :
- prénom == ‘Lili’ est vrai.
- prénom == ‘Léa” est faux.
{{cours-gratuit-python="/brouillon"}}
Les opérateurs AND et OR
Parfois, tu as besoin de tester plusieurs paramètres à l’entrée de ta condition IF. Pour cela, les opérateurs AND et OR te seront d’une grande aide.
L’opérateur logique AND représente l’intersection de deux conditions.
Par exemple, pour connaître tous les employés de ton entreprise qui travaillent aux achats et qui ont au moins 5 ans d’ancienneté, tu utilises un opérateur “AND”. C’est-à-dire que tu veux être certain que les deux critères soient remplis :
- d’une part, l’employé travaille aux achats.
- d’autre part, l’employé a plus de 5 ans d’ancienneté.
Un employé de 7 ans d’ancienneté qui travaille au marketing respecte un seul critère sur les deux : il ne rentre pas dans l’intersection !
Utilisons l’opérateur AND avec un exemple concret. Ton entreprise veut affecter une mission particulièrement délicate à un membre du service “achats” qui a au moins 5 ans d’ancienneté.
Dans la base de données de l’entreprise se trouve un “tableau RH” listant le nom, le département et l’ancienneté de tous les employés.
Nous allons utiliser trois variables :
- La variable “nom” : elle représente le nom de l’employé
- La variable “dept” : elle représente le département auquel appartient l’employé (marketing, achats, service juridique, etc…)
- La variable “anct” : elle représente l’ancienneté de l’employé (en années).
Grâce à une boucle FOR, tu peux demander à Python d’analyser chaque ligne du “tableau RH”. Dans cette boucle, on trouve la condition IF suivante :
Ainsi, Python identifie les employés qui respectent les deux conditions. Lorsque c’est le cas, alors ton programme affiche le nom de l’employé à qui tu peux confier la mission. Si ce n’est pas le cas, le programme passe à l’employé suivant.
L’opérateur logique OR représente l’union de deux conditions.
Avec l’opérateur OR, respecter l’une ou l’autre des conditions permet de réussir le test logique. Mais on peut aussi respecter les deux conditions !
Reprenons l’exemple précédent mais changeons l’opérateur :
Dans ce cas, les employés éligibles à la mission sont plus nombreux. On peut notamment y trouver :
- Marc, qui travaille au service juridique depuis 6 ans,
- Julie, qui travaille aux achats depuis 2 mois,
- Michel, qui travaille aux achats depuis 5 ans.
Autrement dit, seuls les employés qui ne respectent aucune des deux conditions sont exclus.
Condition IF et ELSE
Lorsque tu rédiges une condition IF en Python, le programme effectue l’instruction seulement si la condition est remplie. Dans le cas inverse, il ne se passe rien : le programme passe simplement à la suite et ignore les instructions contenues sous la clause IF.
Toutefois, il existe une manière d’exécuter une autre instruction si la condition n’est pas remplie : la clause ELSE. En anglais, “else” signifie “sinon”. En utilisant IF puis ELSE, tu dis à Python : “si cette condition est remplie, alors fais ci, et sinon, fais ça.”
La syntaxe est la suivante :
Reprenons notre exemple d’objectifs de ventes dans une entreprise de télémarketing. Si un commercial effectue plus de 50 ventes en un mois, alors il reçoit un bonus de 200€.
Ainsi, si la variable ventes est supérieure à 50, cela signifie que le commercial a effectué plus de 50 ventes, et Python affiche “Le vendeur reçoit un bonus de 200€”.
Sinon, Python effectue l’instruction écrite en dessous de ELSE, c'est-à-dire afficher “Le commercial ne reçoit pas de bonus”.
{{cours-gratuit-python="/brouillon"}}
Condition IF, ELIF et ELSE
La clause ELIF permet d’ajouter une autre condition à tester :
- Si la condition IF est fausse,
- Alors Python teste la condition ELIF.
- Si la condition ELIF est fausse, Python applique les instructions contenues dans ELSE.
La syntaxe est la suivante :
Reprenons notre exemple d’objectifs de ventes. L’entreprise décide de créer des objectifs intermédiaires :
- Condition IF : pour plus de 50 ventes en un mois, le commercial obtient une prime de 200€,
- Condition ELIF : pour plus de 30 ventes en un mois (mais moins de 50 !), le commercial obtient une prime de 50€,
- ELSE : le commercial ne reçoit aucune prime.
Imaginons que le commercial ait effectué 43 ventes. Selon la politique de l’entreprise, il ne mérite pas la prime de 200€. En revanche, il peut prétendre à la prime de 50€ !
Attention : l’ordre des conditions est important. Si la première condition IF était ventes >= 30, le commercial qui effectué 51 ventes (ou plus) n’aurait pas reçu la bonne prime. En effet, dès que Python rencontre une condition vérifiée, il exécute les instructions associées mais il ne s’intéresse pas aux conditions suivantes.
Avec Python, tu peux tester autant de conditions que tu le souhaites en répétant la clause ELIF. Par exemple :
Syntaxe rapide d’une condition
En Python, tu peux coder une condition IF en une seule ligne !
Il existe également une syntaxe rapide pour code une condition IF & ELSE.
Par exemple, on peut utiliser une condition IF & ELSE pour affecter une valeur à la variable b en fonction de la valeur de la variable a.
La variable b vaut 1 à condition que la variable a soit inférieur à 20. Sinon, b vaut 2. Ci-dessus, a vaut 10, a est donc plus petit que 20 donc Python affecte la valeur 1 à b.
Autre exemple : choisir quelle variable Python va afficher en fonction de la valeur de ces variables.
On demande à Python d’afficher la valeur de la variable a à la condition que sa valeur soit différente de 0. Sinon, la valeur de la variable b s’affiche. Ci-dessus, a vaut 0, la condition IF n’est donc pas respectée. Python choisit alors d’exécuter l’instruction derrière else et affiche la valeur de la variable b, c’est-à-dire 5.