if~elif~elseの条件分岐

スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 |
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般

Pythonの条件分岐は、多くのプログラミング言語と同様に、if文で行います。
if文の勉強のために、プログラミングで有名なFizzBuzz問題を解いてみます。

スポンサーリンク

FizzBuzz問題とは・・・

1から順に数を数えよ。(とりあえず今回は30まで)
3で割り切れるときには、Fizzと表示せよ。
5で割り切れるときには、Buzzと表示せよ。
3でも5でも割り切れるときには、FizzBuzzと表示せよ。

という命題です。
最近は、世界のナベアツさんでも有名ですね。

3で割り切れるとは、3で割ったときの余りが0となる、ということですので、条件式は、「i % 3 == 0」で表すことができます。
また、3でも5でも割り切れるとは、3と5の最小公倍数である、15で割ったときの余りが0になるということですので、「i % 15 == 0」で条件式を表せます。

じゃ、Pythonで、FizzBuzz問題を書いてみます。

for i in range(1, 31):
    if i % 15 == 0:
        print 'FizzBuzz'
    elif i % 3 == 0:
        print 'Fizz'
    elif i % 5 == 0:
        print 'Buzz'
    else:
        print i

Pythonの場合、else if 文が、「elif」と表記する点に注意です。
上記スクリプトの、ブロック部分(if~elif~else文)の意味は・・・

1.まず、もしも15の倍数なら、FizzBuzzと表示せよ。
2.15の倍数でなくて、3の倍数のときは、Fizzと表示せよ。
3.15の倍数でなくて、3の倍数でなくて、5の倍数のときは、Buzzと表示せよ。
4.15の倍数でなくて、3の倍数でなくて、5の倍数でもないときには、数字をそのまま表示せよ。

実行結果。

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
29
FizzBuzz

ちゃんと予想通りの実行結果となっています。

あと注意点としては、Pythonには、CやJava、PHPで一般的な、「switch~case」文がありません。
Pythonの場合、条件分岐は、if、elif、else を用いて行うことになります。
ネストを深くさせないためには、elif を使うケースが多くなりそうです。

スポンサーリンク
 
スポンサーリンク