私はこれに相当するPythonのものが何であるか疑問に思っていました:
n = 100
x = (10 < n) ? 10 : n;
print x;
何らかの理由で、これは Python では機能しません。if ステートメントを使用できることはわかっていますが、もっと短い構文がないか知りたいだけでした。
ありがとう。
私はこれに相当するPythonのものが何であるか疑問に思っていました:
n = 100
x = (10 < n) ? 10 : n;
print x;
何らかの理由で、これは Python では機能しません。if ステートメントを使用できることはわかっていますが、もっと短い構文
x = min(n, 10)
または、より一般的に:
x = 10 if 10<n else n
これは Pythonの三項演算子です (ドキュメントでは条件式とも呼ばれます)。
x if cond else y
三項演算を行うにはさまざまな方法があります。最初の方法は、2.5 で追加された式です。
n = foo if condition else bar
2.5 より前のバージョンとの互換性を維持したい場合は、ブール値が のサブクラスでint
あり、 のようにTrue
動作するの1
に対し、False
のように動作するという事実を利用でき0
ます。
n = [bar, foo][condition]
もう 1 つの可能性は、Python の演算子の動作方法、またはより正確にはどのようand
にor
動作するかを利用することです。
n = condition and foo or bar
>>> n = 100
>>> x = 10 if n > 10 else n
>>> x
10
10 if 10 < n else n
x = 10 if (10 < n) else n
(python 2.5 が必要です)