これが機能することに困惑しました:
if 5 % 2 == 0:
print "no remainder"
else:
pass
しかし、これではありません:
print "no remainder" if 5% 2 == 0 else pass
SyntaxError: invalid syntax
これが機能することに困惑しました:
if 5 % 2 == 0:
print "no remainder"
else:
pass
しかし、これではありません:
print "no remainder" if 5% 2 == 0 else pass
SyntaxError: invalid syntax
後者はif
ステートメントではなく、式です (print
つまり、ステートメントですが、残りは式として解釈され、失敗します)。式には値があります。pass
それは声明なので、そうではありません。
あなたはそれを 2 つのステートメント ( print or pass
) として見ているかもしれませんが、インタープリターはそれを別の方法で認識します。
expr = "no remainder" if 5% 2 == 0 else pass
print expr
最初の行は、式とステートメントが混在しているため問題があります。
1 行のif
ステートメントは別のものです。
if 5 % 2 == 0: print "no remainder"
if
これは、1 行のステートメントと呼ぶことができます。
PS三項式は、公式ドキュメントでは「条件式」と呼ばれています。
三項式は、使用しようとした構文を使用しますが、2 つの式と条件 (式も) が必要です。
expr1 if cond else expr2
expr1
ifbool(cond) == True
とotherの値を取りexpr2
ます。