条件分岐

Pythonでの条件分岐にはif文を使います。unless文はcase文はありません。

真偽

偽でないもの全て
None, False, 0, "", ( ), [ ], { }

論理演算子

not A Aが偽なら真
A and B AとBの両方が真なら真
A or B AとBのどちらかが真なら真

if文

if a > 0 and b > 0: # この条件が成立すれば、以下のブロック文を実行
    func_a()
elif a > 0:         # 上記の条件が成立しなければ、この条件を評価
                    # 成立すれば、以下のブロック文を実行
    func_b()
elif b > 0:         # 同上
    func_c()
else:               # 全ての条件が成立しなければ、以下のブロック文を実行
    func_d()

Pythonではセミコロンがブロック開始の合図になります。そしてインデントによってブロックを判別します。(同じ深さのインデントの行は同じブロック)


基本的にはRubyPerlのif文と同じですが、代入文を条件式に使うことはできません。

>>> if name = "hoge":
  File "<stdin>", line 1
    if name = "hoge":
            ^
SyntaxError: invalid syntax


1行で書くこともできます。

if x > 0: func_a()
if not x > 0: func_b()