これが機能することに困惑しました:
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
expr1ifbool(cond) == Trueとotherの値を取りexpr2ます。