文法のきほん

INPUT · スライド

いくつにも分ける

01 / 06

2つでは足りないとき

成績を「A・B・C」の3段階に分けたい。ifelse だけでは2つにしか分けられないね。

そこで使うのが elif(エルイフ)。else if を縮めた言葉で、「そうでなくて、もし〜なら」という意味だよ。

02 / 06

elif の形

ifelse の間に、elif 条件: を書く。いくつ並べてもいいよ。

elif は条件を書く点が else とちがう。else は最後に1つだけ、条件なしで置くよ。

ten = 75if ten >= 90:    print("A")elif ten >= 70:    print("B")else:    print("C")

実行結果

B

03 / 06

上から順に見て、最初の1つだけ

ここがいちばん大事なところ。Pythonは上から順に条件を見ていって、最初に成り立ったものだけを実行する

残りは条件が成り立つかどうかにかかわらず、まるごと飛ばされる。だから必ずどれか1つだけが動くんだ。

ten = 95if ten >= 90:    print("A")elif ten >= 70:    print("B")else:    print("C")

実行結果

A

04 / 06

順番をまちがえると壊れる

では条件の順番を逆にするとどうなるか。95 でも B になってしまうよ。

最初に >= 70 を見てしまうので、90点以上の人もそこで捕まってしまうんだ。A は永遠に出てこない。

きびしい条件から先に書く。これが elif を使うときの鉄則だよ。

ten = 95if ten >= 70:    print("B")elif ten >= 90:    print("A")else:    print("C")

実行結果

B

05 / 06

else は省いてもいい

elif だけ並べて else を書かないこともできる。その場合、どれにも当てはまらなければ何も起きないよ。

ただし「取りこぼしがあってもいいのか」は必ず考えよう。else を置いておくと、想定外の値に気づけるという利点があるんだ。

ten = 30if ten >= 90:    print("A")elif ten >= 70:    print("B")

06 / 06

if を並べるのとはちがう

elif のかわりに if を並べると、条件が成り立つぶんだけ全部動いてしまう

下の例では AB の両方が出てしまうね。「どれか1つ」にしたいなら elif でつなぐ必要があるよ。

ten = 95if ten >= 90:    print("A")if ten >= 70:    print("B")

実行結果

A
B