Accéder au contenu principal

Guide des opérateurs ternaires de Python : Améliorer l'efficacité du code

Apprenez à améliorer vos compétences de codage en Python en utilisant des opérateurs ternaires pour produire un code plus efficace et plus lisible. En outre, découvrez des astuces pour rationaliser vos déclarations conditionnelles.
Actualisé 15 janv. 2025  · 11 min de lecture

Les compétences en Python sont essentielles pour travailler avec des données, qu'il s'agisse d'analyser des ensembles de données ou de construire des modèles complexes. Un bon code Python est facile à comprendre et à travailler, mais les choses peuvent devenir désordonnées lorsque vous ajoutez des conditions. C'est là que les opérateurs ternaires s'avèrent utiles.

Les opérateurs ternaires sont comme un raccourci qui permet de garder votre code propre et clair.

Dans cet article, nous aborderons les détails des opérateurs ternaires, en fournissant des exemples pour illustrer la façon de les utiliser dans votre code. En outre, nous discuterons des avantages et des inconvénients de l'utilisation des opérateurs ternaires.

Que sont les opérateurs ternaires en Python ?

Le mot "ternaire" signifie "composé de trois parties". L'opérateur ternaire a été nommé ainsi parce qu'il implique trois opérandes :

  • Une condition
  • Une expression à exécuter si la condition est vraie
  • Une autre expression à exécuter si la condition est fausse.

Dans la littérature de programmation, vous pouvez trouver des opérateurs ternaires sous différents noms : Opérateur conditionnel, Si ternaire et Si en ligne (IIF).

Les opérateurs ternaires ne sont pas propres à Python. Des langages comme Java, JavaScript et C ont également leurs versions. Bien que leur syntaxe diffère légèrement, ils partagent tous la même fonctionnalité de base. Expliquons-le à l'aide d'un exemple simple.

Imaginez que vous deviez prendre une décision, comme celle d'aller à la plage ou de rester à la maison. Vous pouvez prendre cette décision en fonction du temps qu'il fait. S'il fait beau, vous irez à la plage, mais s'il pleut, vous resterez à la maison. Dans la condition "if-else", la situation se présente comme suit :

if weather=="sunny":	print("Go to the beach")else:	print("Stay home")

Traduisons maintenant ce processus de décision en une opération ternaire :

S'il fait beau, vous irez à la plage (x), sinon (else), vous resterez à la maison (y).

Ainsi, en Python ternaire, cela ressemblerait à ceci :

Les deux cas sont corrects. Lequel, selon vous, sera le plus soigné à l'intérieur du code Python ?

Syntaxe de base des opérateurs ternaires de Python

Opérateurs ternaires Python

Allons plus loin et explorons les opérateurs ternaires en détail. La forme générale des opérateurs ternaires de Python ressemble à ceci :

Condition

La condition dans un opérateur ternaire de Python peut être n'importe quelle expression qui s'évalue à une valeur booléenne (Vrai ou Faux). Cette expression peut impliquer des comparaisons ou des opérateurs relationnels (<,>,==,!=), des opérateurs logiques (opérations ET logique, OU logique et NON logique), des appels de fonction ou toute autre opération aboutissant à une valeur booléenne.

Par exemple, la condition pourrait être la suivante :

  • Une simple comparaison : x < 100
  • Une combinaison de comparaisons : x < 10 et y > 25
  • Un appel de fonction : is_numer(value)
  • Une expression logique : x > 0 ou y < 0

L'essentiel est que la condition soit évaluée à True ou False, en fonction de la logique que vous souhaitez mettre en œuvre. Le résultat de l'opérateur ternaire sera alors basé sur le fait que cette condition est évaluée à Vrai ou Faux.

result_if_true

Cette partie de l'opérateur ternaire est souvent appelée "résultat si vrai" ou "valeur si vrai". Il représente l'action ou la valeur qui doit être prise ou attribuée lorsque la condition fournie est évaluée à Vrai.

  • Une variable : x
  • Une valeur constante : 10
  • Un appel de fonction : calculate_value()
  • Une expression arithmétique : x-1, x * 2
  • Toute autre expression Python valide qui produit une valeur

La partie result_if_true vous permet de spécifier le résultat ou la valeur que vous souhaitez lorsque la condition est remplie ou évaluée à True.

result_if_False

Tout comme la partie "résultat si vrai", la partie "résultat si faux" peut être n'importe quelle expression ou valeur Python valide, comme par exemple :

  • Une variable : y
  • Une valeur constante : 0
  • Un appel de fonction : get_value()
  • Une expression arithmétique : y + 2
  • Toute autre expression Python valide qui produit une valeur

Cette flexibilité vous permet de spécifier différents résultats ou valeurs selon que la condition est remplie ou non.

Dans la section suivante, j'examinerai des exemples qui couvrent la plupart des combinaisons de conditions, result_if_True et result_if_False.

Comment utiliser les opérateurs ternaires de Python

Les opérateurs ternaires offrent un moyen concis d'exprimer la logique conditionnelle non seulement dans de simples instructions if-else, mais aussi dans d'autres constructions Python telles que les tuples et les dictionnaires.

Opérateurs ternaires dans les instructions if-else

Pour les opérateurs ternaires, assurez-vous que la condition est évaluée à Vrai ou Faux. Les exemples suivants montrent comment les opérateurs ternaires peuvent traiter simultanément différents types de données dans leurs trois parties. Cette flexibilité les rend utiles pour combiner différents types d'informations dans une seule expression.

Condition : comparaison, Résultat si vrai : variable, Résultat si faux : variable

#the result will be x if x is less than y otherwise it will be yx = 3y = 5result = x if x < y else y

Condition : appartenance, Résultat si vrai : constant, Résultat si faux : constant

# the result will be “Element is present” if the element exists in my_list otherwise it will be "Element is not present"my_list = [1, 2, 3, 4, 5]element = 6result = "Element is present" if element in my_list else "Element is not present"

Condition : logique, Résultat si vrai : constant, Résultat si faux : constant

# the result will be “Even” if the mod of X is 0 otherwise the result will be “Odd”x = 5result = "Even" if x % 2 == 0 else "Odd"

Condition : logique, Résultat si vrai : arithmétique, Résultat si faux : arithmétique

# if x is less than y the results will be the sum of x and y otherwise the result will be the subtraction. x = 5y = 7result = x + y if x < y else x - y

Condition : logique, Résultat si vrai : variable, Résultat si faux : fonction

# in case x is not None value, the result is x otherwise it is the output of the get_defult values function, which is “Default”def get_default_value():    return "Default"x = Noneresult = x if x is not None else get_default_value()

État de santé : Fonction, résultat si vrai : Expression arithmétique, résultat si faux : Fonction

# If the customer_type is not "Regular”, the get_discount function will be called with customer_type as an argument; otherwise, the discount will be set to 0.def get_discount(customer):    return 10 if customer == "VIP" else 5customer_type = "Regular"discount = get_discount(customer_type) if customer_type != "Regular" else 0

Condition : logique, résultat si vrai : Fonction, Résultat si Faux : Fonction

# in case a  is less than b print the value “a is greater” otherwise print “b is greater”a=100b=200print(a,"is greater") if (a>b) else print(b,"is greater")

Opérateurs ternaires imbriqués

L'opérateur ternaire imbriqué de Python vous permet de combiner plusieurs expressions conditionnelles au sein d'un seul opérateur ternaire. Cela peut s'avérer particulièrement utile lorsque vous devez évaluer plusieurs conditions et renvoyer des résultats différents en fonction de chacune d'entre elles.

Prenons un exemple où nous voulons déterminer la catégorie d'un nombre donné en fonction de sa valeur :

num = 15size= "Small" if num < 4 else ("Medium" if num < 10 else "Large")

Dans cet exemple :

  • L'opérateur ternaire externe vérifie si le nombre est inférieur à 4. Si c'est le cas, il lui attribue la catégorie "Petit".
  • Si le nombre n'est pas inférieur à 10, l'opérateur ternaire interne vérifie si le nombre est inférieur à 10. Si c'est le cas, il attribue la catégorie "Moyen"
  • Si aucune de ces conditions n'est remplie, la catégorie "Grand" est attribuée.

Opérateurs ternaires utilisant des tuples

Les opérateurs ternaires peuvent être utilisés dans les tuples pour sélectionner des valeurs en fonction d'une condition. Par exemple :

value = (x if condition else y)

Cependant, il existe un moyen plus sophistiqué d'appliquer les opérateurs ternaires aux tuples. Cette méthode exploite les capacités d'indexation des tuples pour effectuer des opérations conditionnelles. Combinés aux tuples, séquences immuables d'éléments, les opérateurs ternaires permettent de créer des expressions conditionnelles compactes et lisibles.

Dans le contexte des tuples, l'opérateur ternaire sélectionne l'une des deux valeurs sur la base d'une condition et la renvoie. Pour ce faire, le tuple est indexé en utilisant le résultat de la condition comme index. Si la condition est vraie, en Python True =1, l'élément à l'index 1 (correspondant à result_if_true) est renvoyé ; sinon, l'élément à l'index 0 (correspondant à result_if_false) est renvoyé.

Cette approche permet d'effectuer des affectations conditionnelles simples ou des évaluations au sein d'expressions. Veillez toutefois à ce que le code reste lisible et compréhensible.

Exemple :

a, b = 1, 5print((a, b)[a < b])
  • ( a,b) : Cela crée un tuple ( a,b) avec deux éléments, où a est le premier élément et b est le deuxième élément. Dans Python, l'indexation commence à partir de 0. Ainsi, a a un indice 0 et b a un indice 1.
  • [a < b] : Il s'agit d'une opération d'indexation. Si a est inférieur à b, il s'évalue à True, équivalent à 1 en Python. Si a n'est pas inférieur à b, il est évalué à False, équivalent à 0 en Python.
  • Par conséquent, cette opération d'indexation sélectionne effectivement le premier ou le deuxième élément du tuple sur la base du résultat de la comparaison a < b.
  • Comme a vaut 1 et b vaut 5, a < b vaut True, c'est-à-dire 1. L'expression b est donc sélectionnée et 5 est imprimé.

Opérateurs ternaires utilisant des dictionnaires

Le concept d'utilisation de l'indexation, tel qu'il a été vu avec les tuples, peut également être étendu aux dictionnaires. Cependant, contrairement aux tuples, les dictionnaires n'ont pas d'index traditionnel en Python. Au lieu de cela, les dictionnaires utilisent leurs clés pour accéder aux valeurs et les récupérer.

Les clés de dictionnaire ont un rôle similaire à celui des index, car elles permettent d'extraire efficacement les valeurs associées à des clés spécifiques. Les clés de dictionnaire sont similaires aux tuples en ce sens qu'elles sont immuables, c'est-à-dire qu'elles ne peuvent pas être modifiées en interne sans changer l'identité du dictionnaire.

a, b = 1, 5result= {True: a, False: b} [a < b]
  • Ce code est une expression de dictionnaire combinée à une recherche par valeur clé.
  • {True : a, False : b} : Cela crée un dictionnaire avec deux paires clé-valeur.
  • Si la condition [a < b] est vraie, elle associe la clé True à la valeur a, et si la condition est fausse, elle associe la clé False à la valeur b.

Avantages et inconvénients des opérateurs ternaires de Python

Les opérateurs ternaires ont leurs avantages et leurs inconvénients, comme n'importe quel outil. Il est essentiel d'apprendre à connaître les deux côtés pour trouver le bon équilibre et les utiliser efficacement.

Tout d'abord, explorons les avantages de l'utilisation des opérateurs ternaires de Python :

  • Le code sera court et clair.
  • Le code sera plus facile à lire et à comprendre parce qu'il est plus concis.
  • Ils sont pratiques lorsque vous devez attribuer des valeurs en fonction de certaines conditions.
  • Non seulement votre code a l'air plus propre, mais il peut aussi s'exécuter plus rapidement puisqu'il n'a pas à vérifier autant d'options.

Les inconvénients de l'utilisation des opérateurs ternaires de Python sont les suivants :

  • Les opérateurs ternaires peuvent ne pas être idéaux pour les scénarios nécessitant des conditions multiples.
  • Les opérateurs ternaires complexes et imbriqués peuvent être source de confusion et d'erreurs.
  • L'utilisation excessive d'opérateurs ternaires dans le code peut entraîner un code trop complexe, difficile à comprendre et à maintenir.
  • Le flux logique des codes contenant des opérateurs ternaires complexes peut ne pas être clair, ce qui rend le débogage du code extrêmement difficile ainsi que l'identification et la correction des erreurs.

Opérateurs ternaires Meilleures pratiques

Bien entendu, comme pour tout outil, vous serez confronté à des difficultés lorsque vous travaillerez avec eux. Gardez ces bonnes pratiques à l'esprit lorsque vous les utilisez dans votre code :

  • Utilisez-les à bon escient : Les conditions complexes dans les opérateurs ternaires peuvent rendre le code difficile à lire. Si nécessaire, décomposez-les en instructions if-else.
  • N'allez pas trop loin : L'imbrication d'un trop grand nombre d'opérateurs ternaires crée un enchevêtrement. Veillez à ce que les choses soient simples et faciles à suivre.
  • Effectuez un test approfondi : Assurez-vous que votre code avec des opérateurs ternaires fonctionne comme prévu dans différents scénarios.
  • Expliquez votre logique : Ajoutez des commentaires pour expliquer ce que fait l'opérateur ternaire afin d'améliorer la maintenance du code.
  • Soyez cohérent : Utilisez les opérateurs ternaires de la même manière dans tout votre code pour un style propre et lisible.
  • Traiter les erreurs : Prévoyez des moyens de faire face aux situations inattendues lors de l'utilisation d'opérateurs ternaires.

Développez vos compétences en Python

Les opérateurs ternaires de Python sont des perles en Python. Ils vous permettent d'écrire un code rationalisé et efficace en condensant une logique conditionnelle complexe en une seule ligne élégante.

L'adoption d'opérateurs ternaires permet non seulement d'améliorer la lisibilité du code, mais aussi de mieux comprendre la syntaxe expressive de Python. Au cours de votre voyage en Python, l'utilisation de cette forme compacte d'expression conditionnelle vous permettra sans aucun doute d'affiner vos compétences en matière de codage et de créer des scripts plus raffinés.

Voici quelques liens pour vous aider à développer vos compétences en Python et à gravir les échelons de la programmation Python, une étape à la fois.

FAQ

Qu'est-ce qu'un opérateur ternaire en Python ?

Un opérateur ternaire est une expression conditionnelle qui évalue une condition et renvoie l'une des deux valeurs selon que la condition est vraie ou fausse. La syntaxe d'un opérateur ternaire en Python est value_if_true if condition else value_if_false. Il évalue d'abord la condition ; si elle est vraie, il renvoie value_if_true ; sinon, il renvoie value_if_false

Quels sont les avantages de l'utilisation d'opérateurs ternaires ?

Les opérateurs ternaires rendent le code plus compact et plus facile à comprendre en un coup d'œil. Ils réduisent le nombre de lignes de votre code et améliorent la lisibilité des conditions simples.

Quels sont les inconvénients de l'utilisation des opérateurs ternaires ?

Les opérateurs ternaires peuvent améliorer la lisibilité du code pour les conditions simples, mais ils peuvent rendre le code plus difficile à lire pour les conditions complexes ou les opérations imbriquées. Leur utilisation excessive peut rendre le code difficile à comprendre.

Quand devez-vous éviter d'utiliser les opérateurs ternaires ?

Évitez d'utiliser des opérateurs ternaires pour des conditions complexes ou lorsque l'expression devient difficile à comprendre. Si le code devient moins lisible, utilisez des instructions if-else traditionnelles à la place.


Rayan Yassminh's photo
Author
Rayan Yassminh
LinkedIn
Twitter

Un Data Scientist/Analyst polyvalent, alliant expertise en analyse quantitative et technologie de pointe. Titulaire d'un doctorat en géophysique et de diplômes de troisième cycle en intelligence artificielle et en science des données, Rayan met à profit ses solides compétences en matière de résolution de problèmes pour extraire des informations exploitables d'ensembles de données complexes. Les contributions de Rayan à la recherche couvrent divers domaines, mettant en évidence sa capacité à appliquer des techniques avancées pour relever les défis du monde réel.

Sujets

Poursuivez votre apprentissage de Python dès aujourd'hui !

cursus

Python Programming

19hrs hr
Level-up your programming skills. Learn how to optimize code, write functions and tests, and use best-practice software engineering techniques.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 min

blog

Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles. Il couvre tous les domaines, garantissant ainsi une stratégie de préparation bien équilibrée.
Zoumana Keita 's photo

Zoumana Keita

30 min

blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates a offert plus de 20k bourses d'études à nos partenaires à but non lucratif au deuxième trimestre 2023. Découvrez comment des apprenants défavorisés et assidus ont transformé ces opportunités en réussites professionnelles qui ont changé leur vie.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Découvrez le parcours inspirant de Saghar Hazinyar, diplômée de Code to Inspire, qui a surmonté les défis en Afghanistan et s'est épanouie grâce à une bourse de DataCamp Donates.
Fereshteh Forough's photo

Fereshteh Forough

4 min

blog

2022-2023 Rapport annuel DataCamp Classrooms

À l'aube de la nouvelle année scolaire, DataCamp Classrooms est plus motivé que jamais pour démocratiser l'apprentissage des données, avec plus de 7 650 nouveaux Classrooms ajoutés au cours des 12 derniers mois.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 min

blog

Nous avons fait don de bourses DataCamp Premium à un million de personnes, et ce n'est pas fini.

Réparties entre nos deux programmes d'impact social, DataCamp Classrooms et #DCDonates, les bourses offrent un accès illimité à tout ce que DataCamp Premium a à offrir.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Voir plusVoir plus