ブール変数がに設定されている場合にのみ何かを印刷する必要がありますTrue
。これ簡単な例で試してみました:
>>> a = 100
>>> b = True
>>> print a if b
File "<stdin>", line 1
print a if b
^
SyntaxError: invalid syntax
と書いても同じですprint a if b==True
。
ここで何が欠けているのでしょうか?
ベストアンサー1
Python には末尾のステートメントがありません。if
if
Python には2 種類あります。
if
声明:if condition: statement if condition: block
if
式(Python 2.5 で導入)expression_if_true if condition else expression_if_false
print a
と は両方とも文であることに注意してくださいb = a
。a
の部分だけが式です。したがって、次のように書くと
print a if b else 0
その意味は
print (a if b else 0)
同様に、
x = a if b else 0
その意味は
x = (a if b else 0)
では、句がない場合、何が印刷/割り当てられるでしょうかelse
? 印刷/割り当てはまだ存在します。
また、そこに記述したくない場合は、通常のif
ステートメントを 1 行で記述することもできますが、読みにくくなるため、2 行形式を避ける理由は実際にはありません。