Introduction
L'opérateur ternaire en programmation permet de simplifier la syntaxe de certaines opérations conditionnelles. Il est parfois nommé shortcut conditional expression
, ou raccourci d'expression conditionnelle. Même s'il ne faut pas en usé et abusé, c'est parfois bien pratique.
Cependant la syntaxe en Python peut être légèrement déroutante. En effet la plupart des langages (C++, Java, Go, ...) utilise la syntaxe C suivante :
a = condition ? value_if_true : value_if_false
Mais comme nous allons le voir, ce n'est pas le cas de Python !
Syntaxe en Python
Voici un test conditionnel classique. La variable a
sera affectée en fonction de la condition
.
if condition:
a = value_if_true
else:
a = value_if_false
Depuis Python 2.5, il est possible d'utiliser l'opérateur ternaire. La syntaxe Python est la suivante :
a = value_if_true if condition else value_if_false
Exemple
Voici un exemple très simple. Nous avons une variable state
de type booléen. Cette variable sera utilisé dans notre code pour effectuer des traitements selon son état. Un besoin classique consiste à vouloir traduire cet état en une chaîne de caractère. Nous pouvons donc utiliser l'opérateur ternaire pour rapidement affecter la valeur on
ou off
à la variable label_state
.
state = True
label_state = 'On' if state else 'Off'
print(label_state)
L'affichage console de cet exemple sera : On
.