Pythonでフィボナッチ数列を生成する

PythonPythonBeginner
今すぐ練習

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

フィボナッチ数列とは、各数がその直前の2つの数の和になる数列です。この数列は0と1から始まり、次の数は直前の2つの数の和になります。このチャレンジでは、n番目の項までのフィボナッチ数列を含むリストを生成する関数を書きます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python/BasicConceptsGroup -.-> python/comments("Comments") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ControlFlowGroup -.-> python/while_loops("While Loops") python/DataStructuresGroup -.-> python/lists("Lists") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") subgraph Lab Skills python/comments -.-> lab-13630{{"Pythonでフィボナッチ数列を生成する"}} python/conditional_statements -.-> lab-13630{{"Pythonでフィボナッチ数列を生成する"}} python/while_loops -.-> lab-13630{{"Pythonでフィボナッチ数列を生成する"}} python/lists -.-> lab-13630{{"Pythonでフィボナッチ数列を生成する"}} python/function_definition -.-> lab-13630{{"Pythonでフィボナッチ数列を生成する"}} python/build_in_functions -.-> lab-13630{{"Pythonでフィボナッチ数列を生成する"}} end

フィボナッチ

整数 n をパラメータとして受け取り、n番目の項までのフィボナッチ数列を含むリストを返す fibonacci(n) という関数を書きます。

この問題を解くには、次の手順に従うことができます。

  1. sequence という空のリストを作成します。
  2. n が0以下の場合、sequence リストに0を追加してリストを返します。
  3. sequence リストに0と1を追加します。
  4. whileループを使って、sequence リストの最後の2つの数の和をリストの末尾に追加し、リストの長さが n に達するまで続けます。
  5. sequence リストを返します。
def fibonacci(n):
  if n <= 0:
    return [0]
  sequence = [0, 1]
  while len(sequence) <= n:
    next_value = sequence[len(sequence) - 1] + sequence[len(sequence) - 2]
    sequence.append(next_value)
  return sequence
fibonacci(7) ## [0, 1, 1, 2, 3, 5, 8, 13]

まとめ

このチャレンジでは、n番目の項までのフィボナッチ数列を含むリストを生成する方法を学びました。また、リストの最後の2つの数の和をリストの末尾に追加するためにwhileループを使う方法も学びました。