L'opérateur ternaire rassemble une simple instruction if-else sur une seule ligne, ce qui facilite la lecture.
Par exemple, si vous voulez afficher foo comme valeur lorsque v est supérieur à 10, et bar sinon, écrivez-le dans l'instruction if-else et écrivez-le sur 4 lignes.
if-4 lignes lorsqu'il est écrit dans une instruction else
In [22]: for v in range(-5, 15):
...: if v > 10:
...: p = 'foo'
...: else:
...: p = 'bar'
...: print(v, p)
...:
-5 bar
-4 bar
-3 bar
-2 bar
-1 bar
0 bar
1 bar
2 bar
3 bar
4 bar
5 bar
6 bar
7 bar
8 bar
9 bar
10 bar
11 foo
12 foo
13 foo
14 foo
La grammaire de l'opérateur ternaire est
(variable) = (Valeur lorsque la condition est vraie) if (conditions) else (conditionsがFalseのときの値)
Un opérateur ternaire peut être écrit sur une seule ligne.
Une ligne lors de l'écriture avec un opérateur ternaire
In [26]: for v in range(-5, 15):
...: p = 'foo' if v > 10 else 'bar'
...: print(v, p)
-5 bar
-4 bar
-3 bar
-2 bar
-1 bar
0 bar
1 bar
2 bar
3 bar
4 bar
5 bar
6 bar
7 bar
8 bar
9 bar
10 bar
11 foo
12 foo
13 foo
14 foo
** Ici, les instructions if-else entre les instructions for-print sont résumées par l'opérateur ternaire. ** **
Lors de l'ajout d'une condition et de la sortie "infoobar" si elle est inférieure à 0, ajoutez "elif".
Cela affichera "'foo' s'il est supérieur à 10, 'foobar' s'il est inférieur à 0, et'bar 'dans le cas contraire."
if-Deux conditions de déclaration ou plus
In [36]: for v in range(-5, 15, 1):
...: if v > 10:
...: p = 'foo'
...: elif v < 0:
...: p = 'foobar'
...: else:
...: p = 'bar'
...: print(v, p)
...:
-5 foobar
-4 foobar
-3 foobar
-2 foobar
-1 foobar
0 bar
1 bar
2 bar
3 bar
4 bar
5 bar
6 bar
7 bar
8 bar
9 bar
10 bar
11 foo
12 foo
13 foo
14 foo
La syntaxe d'imbrication des opérateurs ternaires est
(variable) = (Valeur lorsque la condition est vraie) if (conditions) else (conditionsがFalseのときの値) if (conditions) else (conditionsがFalseのときの値) ...if-()-else-()Connectez-vous à l'infini
Opérateur ternaire imbriqué
In [38]: for v in range(-5, 15, 1):
...: p = 'foo' if v > 10 else 'foobar' if v < 0 else 'bar'
...: print(v, p)
-5 foobar
-4 foobar
-3 foobar
-2 foobar
-1 foobar
0 bar
1 bar
2 bar
3 bar
4 bar
5 bar
6 bar
7 bar
8 bar
9 bar
10 bar
11 foo
12 foo
13 foo
14 foo
Qiita - opérateur alternatif (Python)
Recommended Posts