Comment utiliser if else sur une ligne en python ? (ternaire)
Vous vous demandez ce qu’est une expression conditionnelle en Python ? Réduisez la taille de votre code en devant un pro des instructions conditionnelles !
Python est un langage élégant qui propose de faire beaucoup de choses en une seule ligne.
Les conditions if-else en font partie avec ce qu’on appelle les expressions conditionnelles.
Similaire à une expression ternaire si vous êtes familier avec d’autres langages de programmation, vous pouvez écrire une condition en une ligne en Python de cette manière :
valeur_si_vrai if condition else valeur_si_faux
Maintenant que vous connaissez la syntaxe d’une expression conditionnelle, voyons ensemble des exemples et comment bien l’utiliser.
Instruction if-else en une seule ligne en Python
En Python, on peut avoir des instructions if-else en une seule ligne.
Les instructions if-else courtes permettent d’économiser des lignes de code tout en préservant la qualité du code.
Attention cependant à ne pas en abuser.
Il vaut mieux un bout de code plus long mais plus facilement lisible car plus explicite, plutôt que moins de ligne de codes qui sont illisibles.
Et justement, transformer des instructions if-else plus longues en une ligne peut rendre votre code illisible.
Il est possible d’écrire une instruction if-else d’une ligne en Python en utilisant l’opérateur ternaire, également connu sous le nom d’expression conditionnelle.
Voici la syntaxe de l’opérateur ternaire en une seule ligne en Python :
une_expression if condition else autre_expression
Par exemple, disons que vous avez une instruction if-else qui vérifie si une personne est majeure en fonction de son âge :
age = 42
if age < 18:
majorite = "Mineur"
else:
majorite = "Majeur"
print(majorite)
Ce qui donne :
Majeur
Cela fonctionne très bien. Mais vous pouvez faire le travail en écrivant l’instruction if-else sous la forme d’une expression en une seule ligne.
Par exemple :
age = 42
majorite = "Mineur" if age < 18 else "Majeur"
print(majorite)
Qui donnera :
Majeur
Comme vous pouvez le constater, vous avez pu économiser trois lignes de code sans sacrifier la lisibilité du code.
Instruction if-elif-else en une ligne en Python
Si vous codez en Python, vous êtes peut-être familier avec la “norme” Python appelée PEP-8.
Une des règles de PEP-8 est de ne pas dépasser 79 caractères par ligne de code.
C’est pourquoi Python ne prend pas en charge les instructions if-elif-else en tant qu’expressions en une ligne.
Si vous voulez vraiment pousser, vous pouvez enchaîner des opérateurs conditionnels ternaires pour obtenir le comportement if-elif-else :
age = 42
majorite = "Mineur" if age < 18 else "Majeur" if age > 65 else "Senior"
Pas très lisible ! 🤯
La norme PEP-8 aide en partie à avoir un code plus lisible, et comme vous pouvez le constater, ce bout de code ci-dessus ne l’est pas vraiment.
Il est beaucoup plus propre d’écrire l’expression ci-dessus comme ceci :
age = 42
if age < 18 :
majorite = "Mineur"
elif age > 65 :
majorite = "Senior"
else :
majorite = "Majeur"
C’est donc à vous de juger si optimiser la taille de votre code le rendra plus lisible ou pas.
Pensez aux autres développeurs ou à votre “vous du futur” qui tombera sur votre code en n’y comprendra rien.
Un code compact ne veut pas dire un code élégant.
Continuez à apprendre à développer comme un pro de Python
Bravo ! Vous avez appris à maîtriser un autre aspect important de Python !
Comme on l’a vu, on peut on pouvez transformer les instructions if-else en expressions d’une seule ligne en utilisant les expressions conditionnelles (similaires aux opérateurs ternaires).
Ainsi, une expression conditionnelle ressemble à ça:
valeur_si_vrai if condition else valeur_si_faux
L’utilisation d’une instruction if-else en une seule ligne est logique si elle améliore la qualité du code. Mais attention en ne pas en abuser car vous pourriez rendre votre code illisible !
Pour aller plus loin dans votre apprentissage de Python, je vous recommande quelques-uns de mes articles sur le sujet :
Je m'appelle Thomas, et je code depuis plus de 20 ans. Depuis ma sortie de la première promotion de l'École 42, j'ai conçu et développé des centaines d'applications et de sites web. Sur ce blog, je partage avec vous les stratégies les plus efficaces pour maîtriser l'art de coder et progresser rapidement.