4

私はこれに相当するPythonのものが何であるか疑問に思っていました:

n = 100
x = (10 < n) ? 10 : n;
print x;

何らかの理由で、これは Python では機能しません。if ステートメントを使用できることはわかっていますが、もっと短い構文がないか知りたいだけでした。

ありがとう。


静的ビルドに問題がありました。最初にビジュアルスタジオプラグインからエクスポートして動作させ、次にSDKとプログラムを再構築し、QTクリエーターからすべて正常に動作しました.

4

6 に答える 6

17
x = min(n, 10)

または、より一般的に:

x = 10 if 10<n else n
于 2011-01-30T13:13:03.443 に答える
7

これは Pythonの三項演算子です (ドキュメントでは条件式とも呼ばれます)。

x if cond else y
于 2011-01-30T13:12:36.537 に答える
4

三項演算を行うにはさまざまな方法があります。最初の方法は、2.5 で追加された式です。

n = foo if condition else bar

2.5 より前のバージョンとの互換性を維持したい場合は、ブール値が のサブクラスでintあり、 のようにTrue動作するの1に対し、Falseのように動作するという事実を利用でき0ます。

n = [bar, foo][condition]

もう 1 つの可能性は、Python の演算子の動作方法、またはより正確にはどのようandor動作するかを利用することです。

n = condition and foo or bar
于 2011-01-30T13:49:20.240 に答える
1
>>> n = 100
>>> x = 10 if n > 10 else n
>>> x
10
于 2011-01-30T13:13:10.580 に答える
1
10 if 10 < n else n 

http://en.wikipedia.org/wiki/Ternary_operationを参照

于 2011-01-30T13:13:20.387 に答える
1
x = 10 if (10 < n) else n

(python 2.5 が必要です)

于 2011-01-30T13:13:22.050 に答える