条件文(if文)

条件文

条件に合わせて動作を切り替えるコマンドのことを「条件文」といいます。例えば、朝、雨が降っていれば傘を持って出掛ける、晴れであれば折りたたみ傘を持って出掛ける、といった場合、朝の天気が「条件」となり、その条件に従って「動作」が変更されます。さらに、天気が晴れであるかどうかを評価する所作を「条件式」で表すことができます。

基本的な書き方は以下の通りになります。

if 条件式1:
  action1
elif 条件式2:
  action2
else:
  action3

インデント

条件文の書き方の部分でコードに段落があるのに気づかれたと思います。これは「インデント」と呼ばれるもので、コードの塊の始まりと終わりを表現するために使われます。上記の条件文の書き方ではもし 条件式1 が True を返せば、action1 を実行します。もしここに複数行のコマンドを記入したい場合は、インデントの高さを揃える必要があります。その際、例えば以下のような書き方になります。

if 条件式1:
  action1
  action2
elif 条件式2:
  action3

Colab においては、このインデント一つ分は「tab」キーか半角スペース2つによって表すことができます。これは Colab 設定によって伝統的な半角スペース4つに切り替えることもできます。

さらに、例えば、複数の条件文を重ねるときにはインデントが更に深くなります。例えば、次のようなコードが複数の条件文を重ねた場合の書き方になります。

if 条件式1:
  action1
  if 条件式1-1:
    action2
    action3

条件1-1が True を返したとき action2 と action3 を実行したい場合はインデント2つ分必要です。またこの2つの実行文のインデントの深さは揃える必要があります。

インデントは条件文特有のものではありません。後ほど説明するfor文や関数などでも出てきます。ここでは 「Python でコードの塊を表すにはインデントを用いる」ということで理解しておいてください。

少し話がそれてしまったので、条件文の実際の書き方に話を戻しましょう。冒頭で出した例を条件文で表現すると以下のようになります。

# 天気の状態を weather に代入します。
weather = '晴れ'
if weather == '晴れ':
  print('折りたたみ傘を持つ。')
elif weather == '雨':
  print('傘を持つ。')
折りたたみ傘を持つ。
# 天気の状態を weather に代入します。
weather = '雨'
if weather == '晴れ':
  print('折りたたみ傘を持つ。')
elif weather == '雨':
  print('傘を持つ。')
傘を持つ。