L'opérateur conditionnel ternaire en Python

L'opérateur conditionnel ternaire en Python

3 mars 2020
Le raccourci de if...else


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.

Sources