はじめに
フィボナッチ数列は、プログラミング初心者が関数の使い方やループ処理を学ぶのに最適な題材の一つです。
この数列は、前の2つの数を足して次の数を作るというシンプルなルールで構成されており、数学的な概念をプログラムで表現する練習にもなります。
本記事では、Python を使ってフィボナッチ数列を生成する関数を作成し、その動作を解説していきます。
書こうと思ったきっかけ
プログラミングを学び始めた頃、関数の使い方や変数の更新方法が分かりにくいと感じました。
特に、ループの中で変数をどのように更新すればよいかという部分が理解しづらかったため、分かりやすい例を探していました。
フィボナッチ数列は、関数の基本・ループの使い方・タプルのアンパックを一度に学べる便利な題材であり、初心者の学習に最適だと考えました。
完成したコード
def fibonacci(n):
a, b = 0, 1
for _ in range(n):
print(a, end=" ")
a, b = b, a + b
fibonacci(10)
コードの流れ
-
fibonacci(n)
関数を定義する -
2 つの変数
a
(初期値 0)とb
(初期値 1)を用意する。 -
for
ループをn
回繰り返す。 -
フィボナッチ数列の計算と出力を行う。
-
print(a, end=" ")
で現在のa
の値を出力(横並びで表示するためend=" "
を指定)。 -
a, b = b, a + b
により、新しいa
とb
を更新する(タプルのアンパックを使用)。
-
-
fibonacci(10)
を実行する。-
n = 10
の場合、最初の 10 個のフィボナッチ数列を出力する。
-
実際に実行してみる
まず、以下のコマンドを実行して作成したコードの動作を確認します。
python test.py
実行結果
➜ Desktop git:(main) ✗ python test.py
0 1 1 2 3 5 8 13 21 34 %
コードの解説
1. フィボナッチ数列を生成する関数の定義
def fibonacci(n):
-
n
を引数に取り、最初のn
個のフィボナッチ数列を出力する関数を定義する。 -
関数を呼び出すと、
n
の回数分ループが実行される。
2. 初期値の設定
a, b = 0, 1
- フィボナッチ数列の最初の 2 つの値
a = 0
,b = 1
をセットする。
3. n
回ループを実行
for _ in range(n):
n
回ループを実行し、各回でフィボナッチ数列の値を更新していく。_
は「ループ変数を使わない」ことを示すために使用(慣習的に_
を使う)。
4. 現在の a
の値を出力
print(a, end=" ")
- 現在の
a
の値を表示する。 end=" "
を指定することで、改行せずにスペース区切りで出力。
5. a
と b
の値を更新
a, b = b, a + b
a
をb
の値に更新し、b
をa + b
の値に更新。- これにより、フィボナッチ数列が次の値へ進む。
- タプルのアンパックを使用することで、スワップ処理が簡潔に記述できる。
6. 関数の呼び出し
fibonacci(10)
n = 10
を指定して関数を呼び出し、最初の 10 個のフィボナッチ数列を出力。
まとめ
ここまで読んでいただきありがとうございました。今回の内容は基本的な部分でしたが、Python の関数の作り方、for
ループの使い方を振り返ることができました。
今後もこのような基礎的な部分については丁寧にまとめていこうと思っています。