wiki:PythonIntroElif

Python:elifが気持ち悪い

Python情報 >> Pythonを学ぶ人に

どうもelifが好きになれません。elseifでいいじゃん、って思う。 でも、仕方ありません。Pythonがインデントで構造を記述するからには、仕方ないのです。

複数の条件に照らし合わせながら適切な処理を選択するという処理は、C言語ならこんなふうに書けます。 このような処理は本質的に、「elseだからインデントを深くする」というルールとは相容れません。

if (条件1) {
  処理1
} else
if (条件2) {
  処理2
} else
if (条件3) {
  処理3
} else {
  処理4
}

もしもPythonにelifが無かったら、どんどんインデントを深くしなければいけません。 なぜならば、Pythonでは「else:の後は必ずインデントを深くしなければいけない」からです。

if 条件1:
  処理1
else:
  if 条件2:
    処理2
  else:
    if 条件3:
      処理3
    else:
      処理4

こんなことを防ぐためにelifがあります。 elifは、複数の条件に順番に照らし合わせながら処理を決定するという処理のためにあります。

if 条件1:
  処理1
elif 条件2:
  処理2
elif 条件3:
  処理3
else:
  処理4