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 を使うケースが多くなりそうです。
- - 関連記事 -
- 三項式
- inによる条件式
- 比較演算子・論理演算子
- whileループ
- forループ