Comment utiliser l'opérateur Python Ternaire (2023)

Ce guide vous apprendra à utiliser l'opérateur ternaire en Python. Vous apprendrez la syntaxe et coderez plusieurs exemples pour comprendre son fonctionnement.

Nous allons d'abord voir comment fonctionne l'instruction conditionnelle if-else, puis apprendre à écrire une expression équivalente à l'aide de l'opérateur ternaire.

Ensuite, nous allons coder quelques exemples et apprendre à émuler le comportement de l'opérateur ternaire de Python à l'aide d'un tuple et d'un dictionnaire Python. Enfin, nous examinerons certains cas d'utilisation où vous préféreriez utiliser l'opérateur ternaire.

Commençons!

L'instruction If-Else en Python : un examen

Vous pouvez co-coder via un REPL Python ou dansL'éditeur Python en ligne de Geekflare.

La syntaxe générique de l'instruction if-else en Python est la suivante :

si condition : # faire ceciautre : # faire ceci

Dans l'extrait ci-dessus,conditionindique la condition à vérifier. Si la condition est évaluée àVrai, alors le bloc if est activé. Si la condition est évaluée àFAUX, les instructions du bloc else sont exécutées.

Voici un exemple où lejeu terminéla variable reçoit une valeur booléenne selon que la valeur deénergieest inférieur ou égal à zéro.

(Video) Python: Operateur ternaire

  • Siénergie <= 0,jeu terminéestVrai.
  • Ander,jeu terminéest faux.

L'extrait de code suivant montre comment procéder à l'aide des instructions conditionnelles if-else :

energy = -1if energy <= 0: game_over = Trueelse: game_over = Falseprint(game_over)# True

Dans cet exempleénergieest -1 qui est inférieur à 0. Doncjeu terminéest vrai.

Opérateur ternaire Python : syntaxe et exemples

Comment utiliser l'opérateur Python Ternaire (1)

Python a un opérateur ternaire un peu comme leopérateur conditionnel ternairedans des langages comme C et C++. La syntaxe générale pour l'utiliser est la suivante :

expression1 si condition sinon expression2

Analysons la syntaxe ci-dessus :

  • condition: La condition à vérifier.
  • expression1: L'expression à évaluer si la condition est vraie.
  • expression2: L'expression à évaluer si la condition est fausse.

Nous allons maintenant identifier ceexpression1,expression2dansconditiondoit provenir de la version if-else du code.

Comment utiliser l'opérateur Python Ternaire (2)

Tout bien considéré, nous avons ce qui suit en utilisant l'opérateur ternaire de Python.

game_over = True if energy <= 0 else Falseprint(game_over)# True

Codez un autre exemple. Disons que vous gérez une librairie et que vous accordez aux lecteurs une remise sur leur achat en fonction du nombre de fois qu'ils ont visité votre magasin au cours de l'année écoulée.

En retardnombre de visitesindiquer le nombre de visites.

  • Sinombre de visites > 7, le pourcentage de remise,discount_perca 20 ans.
  • Ander,discount_percest 5.

Nous utilisons l'opérateur ternaire pour attribuer une valeur à ladiscount_percvariable.

(Video) 40 L'opérateur ternaire

numVisits = 10discount_perc = 20 if numVisits > 7 else 5print(discount_perc)# 20 (comme numVisits = 10 qui est > 7)

Ensuite, nous apprenons à émuler l'opérateur ternaire à l'aide d'un tuple Python et d'un dictionnaire.

Emulation de l'opérateur ternaire avec Python Tuple

Comme tous les itérables en Python, les tuples suivent l'indexation nulle. Donc, si vous avez deux éléments dans un tuple,nom_tuple[0]désigne le premier élément du tuple etnom_tuple[1]renvoie le deuxième élément du tuple.

Les types de données de base en Python sont entier, flottant, chaîne et booléen. Python prend en charge le transtypage qui vous permet de représenter un type de données particulier via sa représentation équivalente dans un autre type de données.

Démarrez un REPL Python et exécutez les exemples suivants. Si vous essayez de convertir des entiers en booléens, vous voyez ce qui suit :

  • bool(0)estFAUX.
  • bool()RetourVrai.
>>> bool(0)Faux>>> bool(1)Vrai>>> bool(-1)Vrai>>> bool(10)Vrai

De même, lors de la conversion de booléen en entiers, nous avons :

>>> entier(vrai)1>>> entier(faux)0

La compilation du typage et de l'indexation nous permet de :

  • Élément à l'index 0 dans le tuple : La valeur à utiliser lorsque leconditionestFAUX.
  • Élément à l'index 1 dans le tuple : La valeur à utiliser lorsque leconditionestVrai.

Sur la base de ce qui précède, nous avons ce qui suit :

>>> numVisits = 10>>> discount_perc = (5,20)[numVisits > 7]>>> discount_perc# 20

Ici, l'étatnombre de visites > 7estVraicommenombre de visitesest 10. Parce queentier (vrai)est 1, la valeur dediscount_percest 20, l'élément à l'index 1.

Emulation de l'opérateur ternaire avec le dictionnaire Python

Vous pouvez définirVraidansFAUXcomme les clés du dictionnaire. Et vous pouvez définirexpression1dansexpression2comme les valeurs correspondant aux touchesVraidansFAUX, Respectivement.

(Video) Ternary Operator - Python Tips and Tricks #4

some_dict = {Vrai : expression1, Faux : expression2 }

Qu'est ce que tu fais après? Si vous utilisez maintenantsome_dict[condition],expression1correspond à laVraiclé est évaluée comme laconditionestVrai. Dansexpression2est évalué lorsque leconditionestFAUX.

Codons le codediscount_percexemple (encore) mais cette fois en utilisant un dictionnaire Python.

>>> numVisits = 10>>> discount_dict = {True : 20, False : 5}>>> discount_perc = discount_dict[numVisits > 7]>>> discount_perc# 20

Icinombre de visites = 10qui est supérieur à 7. Par conséquent, la condition estnombre de visites > 7estVrai. Comme çadiscount_dict[numVisites > 7]évalue àdiscount_dict[Vrai]c'est la valeur 20.

Devriez-vous toujours utiliser l'opérateur ternaire Python ?

Comment utiliser l'opérateur Python Ternaire (3)

Jusqu'à présent, nous avons appris à utiliser l'opérateur ternaire.Mais doit-on toujours utiliser l'opérateur ternaire ?Eh bien, l'opérateur ternaire n'est peut-être pas le meilleur choix pour tous les cas d'utilisation. Cette section explique quand vous devriez préférer utiliser l'opérateur ternaire plutôt que les instructions if-else. Nous discutons également du moment où nous devrions envisager d'utiliser l'instruction if-else au lieu de l'opérateur ternaire.

Plus concis que les blocs If-Else

Comme mentionné précédemment, l'expression de l'opérateur ternaire en Python est plus concise que l'instruction if-else. Par conséquent, vous pouvez l'utiliser pour vérifier les conditions et évaluer conditionnellement les expressions à la volée.

Dans l'exemple suivantNombresest une liste de 100 entiers générés aléatoirement. Pour chacun des 100 nombres, on vérifie s'il est pair ou impair. Et cette évaluation a lieu en ligne dans la chaîne f.

import randomnums = [random.choice(range(100)) for i in range(10)]for num in nums: print(f"{num} is {'even' if num%2==0 else 'odd'} ")
# exemple de sortie0 est pair56 est pair6 est pair53 est impair62 est pair7 est impair8 est pair77 est impair41 est impair94 est pair

L'opérateur ternaire nécessite la clause Else

Lors de l'utilisation des instructions conditionnelles if-else, la clause else est facultative. Prenons un exemple. Lejeu terminévariable est définie surVraisi laénergietombe à une valeur inférieure ou égale à zéro.

Comme leénergieest supérieur à zéro, lejeu terminévariable n'est jamais initialisée. Vous rencontrerez donc des erreurs lorsque vous tenterez d'accéder aujeu terminévariable.

energy = 5if energy <= 0 : game_over = Trueprint(f"Le jeu est-il terminé ? {game_over}")
Traceback (appel le plus récent en dernier) : Fichier "ternary_op.py", ligne 39, dans  print(f"Is the game over ? {game_over}")NameError : le nom 'game_over' n'est pas défini

Une façon de résoudre ce problème consiste à configurerjeu terminéDésagréableFAUXinitialement et mettez-le à jourVraisi le niveau d'énergie est inférieur ou égal à zéro.

(Video) Python Conditional Expressions using the Ternary Operator - Python Code Example - APPFICIAL

energy = 5game_over = Falseif energy <= 0 : game_over1 = Trueprint(f"Le jeu est-il terminé ? {game_over}")

Cependant, lors de l'utilisation de l'opérateur ternaire Python équivalent de ce qui précède, la clause else n'est pas facultative. L'opérateur ternaire exige que l'expression soit évaluée lorsque leconditionestFAUX.

game_over = Vrai si énergie <= 0 sinon Faux

Si vous changez ce qui précède engame_over = Vrai si énergie <= 0en supprimant la partie else, vous rencontrez une erreur de syntaxe, comme indiqué :

Fichier "ternary_op.py", ligne 42 game_over = Vrai si énergie <= 0 ^SyntaxError : syntaxe invalide

Utiliser des instructions If-Else pour vérifier plusieurs conditions

Prenons l'exemple : chaque question d'une série de questions d'entrevue de codage est associée à un score de difficulté. En fonction de ce score, nous attribuons l'un des trois niveaux de difficulté : facile, moyen ou difficile, à une question particulière. Supposons que nous ayons les éléments suivants :

ScoreNiveau de difficulté
Moins de 10Et c'est très facile
Entre 10 et 20moyen
Plus de 20dur

Compte tenu de la difficulté, vous pouvez obtenir la difficulté en utilisant l'opérateur ternaire Python comme indiqué :

score = 12difficulty_level = "easy" if score < 10 else "hard" if score > 20 else "medium"print(difficulty_level)# medium

L'expression de l'opérateur ternaire dans le bloc de code ci-dessus a la forme suivante :

expression1 si condition1 sinon expression2 si condition2 sinon expression3

Bien que concis, il est un peu difficile à lire et à analyser. La figure suivante montre comment le flux de contrôle se produit dans ce cas.

Comment utiliser l'opérateur Python Ternaire (4)

L'extrait de code suivant montre une implémentation équivalente utilisant des instructions if-else. Comme on peut le voir, le flux de contrôle est beaucoup plus facile à comprendre et le code est plus lisible.

if score < 10: difficult_level="easy"elif score > 20: difficult_level="hard"else: difficult_level="medium"print(difficulty_level)

Par conséquent, si vous avez plusieurs conditions, vous devez utiliser les blocs if-else au lieu de l'opérateur ternaire. Cela garantit que le code est facile à lire et à comprendre.

De plus, si vous devez exécuter plusieurs instructions selon que la condition est vraie ou fausse, vous pouvez envisager d'utiliser l'instruction if-else.

(Video) L'opérateur conditionnel ternaire - 24/31

Conclusion

Voici un résumé de ce que vous avez appris dans ce didacticiel.

  • En Python, l'opérateur ternaire peut être utilisé avec la syntaxe suivante :expression1 si condition sinon expression2.
  • Vous pouvez imiter le comportement de l'opérateur ternaire à l'aide de tuples et de dictionnaires Python.
  • Bien que l'opérateur ternaire puisse être une alternative plus concise aux blocs if-else, assurez-vous que le code est lisible. Pour améliorer la lisibilité du code, vous pouvez utiliser les instructions if-else au lieu de l'opérateur ternaire, en particulier lorsque vous devez enchaîner plusieurs conditions.

Ensuite, apprenez à regarder le tutoriel suropérateurs égaux et non égaux en Python.

Videos

1. Cours 11 opérateur ternaire
(Tech Wall)
2. 13 - Débuter en Javascript - L'opérateur ternaire
(Nouvelle Techno)
3. 35 Opérateur ternaire
(Bouhlel Mohamed Salah)
4. Opérateur ternaire & opérateur Elvis | PHP en 5 min
(e.Michel)
5. What is the ? code!? Learn about the ternary operator!
(Programming Electronics Academy)
6. CONDITIONAL Statements in Python (IF, ELIF, ELSE, Nested, Ternary Operators) - Python for Beginners
(Digital Academy)
Top Articles
Latest Posts
Article information

Author: Prof. Nancy Dach

Last Updated: 03/27/2023

Views: 5259

Rating: 4.7 / 5 (57 voted)

Reviews: 80% of readers found this page helpful

Author information

Name: Prof. Nancy Dach

Birthday: 1993-08-23

Address: 569 Waelchi Ports, South Blainebury, LA 11589

Phone: +9958996486049

Job: Sales Manager

Hobby: Web surfing, Scuba diving, Mountaineering, Writing, Sailing, Dance, Blacksmithing

Introduction: My name is Prof. Nancy Dach, I am a lively, joyous, courageous, lovely, tender, charming, open person who loves writing and wants to share my knowledge and understanding with you.