【Python学習ログ#6】 FizzBuzz問題(for文・while文の練習)
FizzBuzz問題とは?
Pythonの基礎学習を進めていく中で、
条件分岐とループ処理の理解を深める定番の練習問題が「FizzBuzz問題」です。
一見シンプルですが、「条件の優先順位」や「出力形式の工夫」を意識することで、
より実践的なコード力が身につきます。
そもそも「FizzBuzz問題」とは何か?
、、というところから解説いたします。
1から100までの整数を順番に出力し、
・3の倍数のときは「Fizz」
・5の倍数のときは「Buzz」
・15の倍数のときは「FizzBuzz」
と表示する、というプログラムです。
プログラミングの入門書や面接問題などでもよく出題される定番テーマのようです。
for文を使った解法
まずはfor文を使って1から100まで繰り返し処理を行い、
条件に応じて出力を切り替えてみます。
(👇いつものように、Google Colabにてコーディングしています。)

【⭐️ポイント】
・ifの順序を誤ると、15の倍数が「Fizz」や「Buzz」で止まってしまいます。
➡︎ 最初に「15の倍数(3と5の両方)」を判定するのがコツです。
・出力順序とネスト構造を意識することで、よりシンプルなコードになります。
※「ネスト構造」とは?
ネスト(nest) とは英語で「入れ子」という意味です。
つまり ネスト構造 とは、
「ある文の中に、さらに別の文が入っている状態」 のことを指します。
上記のコーディングでいえば、
for i in range(1, 101): の中に、
if i % 15 == 0: 以下の文が入っている状態のことです。
while文を使った解法
次に、同じ処理をwhile文で書くとこうなります👇

【⭐️ポイント】
・⚠️ i += 1を忘れると無限ループになるため注意!⚠️
(※初期化(i = 1) と 更新(i += 1) を必ず自分で書く必要があります。)
・for文とwhile文の違いを体感しながら書くことで「どちらを使うのが自然か」を理解できます。
前回の学習ログ#5のおさらいになりますが、、
・for文は「繰り返し回数が決まっている場合」に使いやすい。
・while文は「条件が満たされるまで繰り返す場合」に便利。
となります。
学習ポイントまとめ
今回の学習ログのポイントをまとめます。
・条件の優先順位とネスト構造の理解
・while文の場合、i += 1を忘れると無限ループになるため注意!
FizzBuzz問題は、条件分岐とループの組み合わせを練習するのに最適です。
また、ここで身につけた考え方は、「リスト処理」や「データ集計」にも活きてきます。
今回のPython学習はここまでとします。
Python学習に興味のある方、Pythonを副業に活かしてみたい方、
一緒に学んでいきましょう!







