Der ternäre Operator setzt eine einfache if-else-Anweisung in einer Zeile zusammen, um das Lesen zu erleichtern.
Wenn Sie beispielsweise foo als Wert anzeigen möchten, wenn v größer als 10 ist, und ansonsten einen Balken erstellen möchten, schreiben Sie ihn in die if-else-Anweisung und in 4 Zeilen.
if-4 Zeilen, wenn in else-Anweisung geschrieben
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
Die Grammatik des ternären Operators ist
(Variable) = (Wert, wenn die Bedingung wahr ist) if (Bedingungen) else (BedingungenがFalseのときの値)
Ein ternärer Operator kann in eine Zeile geschrieben werden.
Eine Zeile beim Schreiben mit einem ternären Operator
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
** Hier werden die if-else-Anweisungen zwischen den for-print-Anweisungen vom ternären Operator zusammengefasst. ** ** **
Wenn eine Bedingung hinzugefügt wird und sie kleiner als 0 ist, wird bei der Ausgabe von "foobar" "elif" hinzugefügt.
Dies gibt "'foo' aus, wenn es größer als 10 ist, 'foobar', wenn es kleiner als 0 ist, und 'bar' andernfalls."
if-Zwei oder mehr andere Anweisungsbedingungen
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
Die Syntax zum Verschachteln von ternären Operatoren lautet
(Variable) = (Wert, wenn die Bedingung wahr ist) if (Bedingungen) else (BedingungenがFalseのときの値) if (Bedingungen) else (BedingungenがFalseのときの値) ...if-()-else-()Unendlich verbinden
Verschachtelter ternärer Operator
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 - Interner Operator (Python)
Recommended Posts