Числа Фибоначчи
Ряд чисел Фибоначчи представляет собой последовательность. Первый и второй элементы последовательности равны единице. Каждый последующий элемент равен сумме двух предыдущих. Рассмотрим разные способы нахождения элементов по номеру и генерацию списка с помощью Python 3.
Введение
Расчет ряда чисел Фибонначчи – один из лучших примеров программ на Python, использующих рекурсию. Хотя наиболее частый пример, рекурсии – это расчет факториала.
Рассмотрим варианты получения ряда Фибоначчи на Python 3:
- С помощью рекурсии.
- Используя оператор цикла.
Также сгенерируем список чисел и создадим генератор с помощью которого можно поочередно получать числа.
Будем искать с помощью цикла for. В переменных prew и cur будут предыдущий элемент последовательности и текущий, их проинициализируем в 1. Если пользователь запросит первый или второй элемент, то мы так и не попадём внутрь тела цикла. И будет выведена единица из переменной cur .
Если же запросят 3-ий или какой либо последующий элемент последовательности Фибоначчи, то мы зайдем в цикл. Во временную переменную tmp сохраним следующее число последовательности. После этого заполним prew и cur новыми значениям. Когда пройдет нужное количество итераций, выведем значение cur в консоль.
В предыдущем коде нам пришлось воспользоваться переменной tmp . Но можно код внутри цикла переписать следующим образом:
Теперь вместо трех строк кода получилась одна строка! И пропала необходимость использования дополнительной переменной.
В этом примере мы использовали цикл for , но можно эту программу реализовать, немного изменив код, с помощью цикла while .
Рекурсия
В случае с рекурсией напишем функцию, аргументом которой будет требуемое число ряда Фибоначчи. Текущему значению последовательности cur вначале присвоим 1. После этого воспользуемся условным оператором языка Python – if . В нем проверим аргумент функции. Если он больше 2, то функция вызовет саму себя и вычислит предыдущее значение ряда, а так же то, которое было еще раньше и запишет в переменную cur их сумму.
Конечно, пример с рекурсией интересен. Но он будет работать гораздо медленнее.
А если вы решите вычислить, допустим 1000-ый элемент последовательности. Используя цикл, мы его очень быстро рассчитаем. А вот в случае с рекурсией получим ошибку превышения максимального количества рекурсий:
Генератор списка
Если мы захотим инициализировать список рядом Фибоначчи, то это можно сделать следующим образом:
Здесь fibonacci(10) это генератор объекта ряда размерностью 10. При каждом последующем вызове он будет с помощью yield возвращать очередной элемент. Мы создаём из него список. Затем выводим список в консоль с помощью функции print .
Если нам надо будет поочередно получать числа ряда, а не держать в памяти сразу весь список, то можно поступить следующим образом:
Здесь мы создали с помощью Python 3 генератор чисел Фибоначчи. При помощи функции next мы получаем поочередно числа ряда.
Fibonacci series in Python [Complete program with 13 different examples]
Now, we will see python program to print fibonacci series.
- In this example, I have used the function def fib(n)
- We have initialized the first term to 0 and the second term to 1.
- The for loop is used to iterate the values till the given number
- At last, it will print fibonacci series
Example:
To get the output, I have used print(c) to get the Fibonacci series. You can refer to the below screenshot for the output.

The above code, we can use to print fibonacci series in Python.
Python program to print fibonacci series using recursion
Here, we will see python program to print fibonacci series using recursion.
- In this example, I have used the function def Fibonacci(number)
- Here, if (number == 0) check whether the given number is 0 or not. If it is true, the function returns the value zero.
- elif (number == 1) check whether the given number is 1 or not. If it is true, the function returns the value one.
- A recursive function Fibonacci() is used to calculate the n term sequence.
- A for loop is used to iterate and calculate each term recursively.
- We will take the input from the user
Example:
To get the output, I have used print(Fibonacci(n)) to get the fibonacci series using recursion. You can refer to the below screenshot for the output.

The above code we can use to print fibonacci series using recursion in Python.
Fibonacci series in python using for loop
Let’s see python program to print fibonacci series using for loop
- Firstly, we will allow the user to enter any positive integer.
- We have initialized the First_val to 0 and the second_val to 1.
- Here, for loop is used to iterate the number from 0 to user-specified number.
- At last, print(next) is used to get the fibonacci series in Python
Example:
Below is an example of fibonacci series in python using for loop.
To get the output, I have used print(next) to get the fibonacci series using for loop. You can refer to the below screenshot for the output.

The above code, we can use to print fibonacci series using for loop in Python.
Python program to print fibonacci series up to n terms
Here, we will see python program to print fibonacci series up to n terms
- Firstly, we will allow the user to enter n terms
- We have initialized n1 to 0 and n2 to 1.
- If the number of terms is more than 2, we will use a while loop to find the next term in the sequence by adding the preceding two terms.
- After that, we interchange the variable and continue with the process.
Example:
To get the output, I have used print(Fibonacci sequence) to get the fibonacci series up to n terms. You can refer to the below screenshot for the output

This is the Python program to print fibonacci series up to n terms.
Python program to print fibonacci series between 0 to 50
Now, we will see python program to print fibonacci series between 0 to 50
- We have initialized n1 to 0 and n2 to 1.
- Every next number is found by adding up the two numbers before it.
Example:
To get the output, I have used print to get the fibonacci series between 0 to 50. You can refer to the below screenshot for the output.

The above Python code, we can use to print fibonacci series between 0 to 50 in Python.
Python program to print fibonacci series using iteration
Now, we will see python program to print fibonacci series using iteration.
- In this example, I have used the function def fib(number).
- We have initialized first as 0 and second as 1.
- The while loop is used to find the next term in the sequence by adding the preceding two terms.
- And then update the value of the first and second.
Example:
To get the output, I have used print to get the fibonacci series using iteration. You can refer to the below screenshot for the output.

The above Python code, we can use to print fibonacci series using iteration in Python.
Python program to print Fibonacci series without using recursion
Let’s see python program to print fibonacci series without using recursion.
- Firstly, the user will enter the first two numbers of the series and the number of terms to be printed from the user.
- Then print the first two numbers
- The while loop is used to find the sum of the first two numbers and then the fibonacci series
- Now, print the fibonacci series till n-2 is greater than 0.
Example:
To get the output, I have used print to get the fibonacci series without using recursion. You can refer to the below screenshot for the output.

The above Python code we can use to print fibonacci series without using recursion in Python.
Python program to print fibonacci series until ‘n’ value using recursion
Let see python program to print fibonacci series until ‘n’ value using recursion.
- In this example, I have used the function defrecursion_fib(num)
- Here, if num <= 1 then return num
- The other terms are obtained by adding the preceding two terms. The n term is the sum of (num-1) and (num-2) terms.
- A recursive function recursion_fib is used to calculate the n term sequence.
- A for loop is used to iterate and calculate each term recursively.
Example:
To get the output, I have used print(recursion_fib(i)) to get the fibonacci series until ‘n’ value using recursion. You can refer to the below screenshot for the output.

The above code we can use to print fibonacci series until ‘n’ value using recursion in Python.
print fibonacci series in python using while loop
Now, we will see python program to print fibonacci series using while loop.
- Firstly, the user will enter any positive integer.
- We have initialized F_val as 0 and S_val as 1.
- We have declared three integer variables like i, F_val, and S_val.
- The while loop makes sure that the loop starts from 0 and is less than the user given number.
- Within the while loop, we have used if and else.
- And at last fibonacci series will get printed in the output.
Example:
To get the output, I have used print(Next) to get the fibonacci series using a while loop. You can refer to the below screenshot for the output.

The above code, we can use to print fibonacci series using while loop in Python.
fibonacci series in python using function
Here, we will see python program to print fibonacci series using function
- In this example, we have used the function as def fib(n)
- We have initialized the n1 to 0 and n2 to 1.
- if n == 1 then print(n1)
- The for loop is used to iterate the values till the given number
- At last, it will print fibonacci series
Example:
To get the output, I have used print(t) to get the fibonacci series using function. You can refer to the below screenshot for the output.

Program to print first 50 fibonacci numbers in python
Is anyone asking you to write a python program to get the fibonacci series between 0 to 50? Let’s see the program to print the first 50 fibonacci numbers in python.
- In this example, I have used the function defFibonacciNum(n)
- We have initialized the n1 to 0 and n2 to 1.
- Here, if n < 1 then return
- The for loop is used to iterate the values till the given number.
- At last, call the function FibonacciNum(50) to get the first 50 fibonacci numbers in the output.
Example:
You can refer to the below screenshot for the output of first 50 fibonacci numbers in python.

Python program to print fibonacci series in python using a list
Now, we will see python program to print fibonacci series in python using a list
- Firstly, the user will enter any positive integer.
- The for loop is used to iterate the values till the given number
- At last, print(fib) to get the fibonacci series in the list.
Example:
To get the output, I have used print(fib) to get the fibonacci series using function. You can refer to the below screenshot for the output.

The above code we can use to to print fibonacci series using function in Python.
You may like the following tutorials:
In this Python tutorial, we have learned about the Python program to print Fibonacci series or Fibonacci Series in Python. Also, we covered these below topics:
- Python program to print fibonacci series
- Fibonacci series in python using recursion
- Python program to print fibonacci series using for loop
- Python program to print fibonacci series up to n terms
- Python program to print fibonacci series between 0 to 50
- Python program to print fibonacci series using iteration
- Fibonacci series in python without recursion
- Python program to print fibonacci series until ‘n’ value using recursion
- Python program to print fibonacci series using while loop
- Python program to print fibonacci series using function
- Program to print first 50 fibonacci numbers in python
- Python program to print fibonacci series in python using a list

Python is one of the most popular languages in the United States of America. I have been working with Python for a long time and I have expertise in working with various libraries on Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc… I have experience in working with various clients in countries like United States, Canada, United Kingdom, Australia, New Zealand, etc. Check out my profile.
Последовательность Фибоначчи в Python
Иногда полезно реализовать собственный тип последовательности, у которого есть функции, аналогичные встроенным функциям для кортежей или списков.
Как вы уже знаете, последовательность может быть изменяемой или неизменяемой. В этой статье мы сосредоточимся на создании пользовательского неизменяемого типа последовательности.
У неизменяемой последовательность должно быть две основные возможности:
- Возвращать количество элементов последовательности.
- Возвращать элемент по заданному индексу или вызывать ошибку IndexError, если индекс выходит за границы последовательности.
Если объект удовлетворяет вышеуказанным требованиям, получится производить следующие действия:
- Использовать синтаксис квадратных скобок [] для получения элемента по индексу.
- Перебирать элементы последовательности: например, с помощью цикла for.
Чтобы реализовать перечисленные выше возможности, нужно создать следующие методы:
- __getitem__ — возвращает элемент по заданному индексу.
- __len__ — возвращает длину последовательности.
1) Метод __getitem__
У метода __getitem__ должен быть аргумент index , который является целым числом. Метод __getitem__ должен вернуть элемент из последовательности на основе указанного индекса.
Диапазон значений index : от нуля до length — 1 . Если индекс выходит за границы, метод __getitem__ должен выдать исключение IndexError.
Метод __getitem__ может принимать объект среза для слайсинга.
2) The __len__ method
Если у пользовательской последовательности есть метод __len__ , вы можете использовать встроенную функцию len() , чтобы получить количество элементов последовательности.
Последовательность Фибоначчи
Последовательность Фибоначчи примерно в 1170 году открыл Леонардо Фибоначчи, итальянский математик.
В последовательности Фибоначчи каждое число является суммой двух предшествующих ему чисел. Например:
Последовательность Фибоначии можно задать следующей формулой:
В некоторые источниках сказано, что последовательность Фибоначчи начинается с нуля, а не с 1, как сейчас. То есть вот так:
Но мы будем придерживаться исходной последовательности Фибоначчи, которая начинается с единицы.
Чтобы вычислить число Фибоначчи в Python, нужно создать такую рекурсивную функцию:
В этой рекурсивной функции fib(1) и fib(2) всегда возвращают 1. А когда n больше 2, fib(n) = fib(n-2) — fib(n-1) .
Добавим print() в начало функции, чтобы посмотреть, как она работает, и вызовем функцию fib() с аргументом 6.
Вывод
Как вы видите, функция fib() часто повторяется.
Например, ей приходится трижды вычислять 3 число Фибоначчи. Это неэффективно.
Чтобы решить эту проблему, в Python есть декоратор под названием lru_cache из модуля functools .
lru_cache позволяет кэшировать результат работы функции. Когда вы передаете тот же аргумент функции, функция просто получает результат из кэша вместо того, чтобы пересчитывать его.
Ниже показано, как использовать декоратор lru_cache для ускорения работы функции fib() :
Вывод
Как вы видите, количество вычислений значительно уменьшилось.
Создаем последовательность Фибоначии
1. Сначала определим класс, реализующий последовательность Фибоначчи:
Метод __init__ принимает целое число n , которое задает длину последовательности.
2. Теперь определим статический метод, который вычисляет значение определенного числа Фибоначчи:
3. Реализуем метод __len__ , чтобы мы могли использовать встроенную функцию len() для получения количества элементов из последовательности Фибоначчи:
4. Реализуем метод __getitem__ для поддержки индексации с помощью синтаксиса квадратных скобок []:
Метод __getitem__ принимает целое число index. Метод __getitem__ проверяет, является ли индекс целым числом, используя функцию isinstance() .
Если index выходит за границы последовательности, __getitem__ вызовет исключение IndexError. В противном случае он вернет число Фибоначчи индекса.
Соединим все вместе:
Кастомная последовательность Фибоначчи в виде Python-класса готова. Однако вы не сможете просто сохранить этот код в модуле fibonacci.py и использовать его в другом скрипте.
Давайте разберемся, как использовать созданную последовательность.
Используем последовательность Фибоначии
Ниже показано, как использовать последовательность Фибоначчи из модуля fibonacci.py :
Вывод
Как это работает
- Создаем новый экземпляр последовательности Фибоначчи, в котором содержится 10 элементов.
- Получаем доступ к элементам последовательности Фибначчи с помощью квадратных скобок [].
- Используем последовательность Фибоначии в цикле for.
Добавляем поддержку срезов
Чтобы можно было делать срезы нашей последовательности, как показано ниже,
. нужно добавить соответсвующую логику, которая будет обрабатывать объект среза.
В fibonacci[1:5] аргументом index метода __getitem__ является объект среза, начало которого равно 1, а конец — 5.
Вы можете использовать метод indices() объекта среза, чтобы получить индексы элементов для возврата из последовательности:
self.n — это длина последовательности, которая будет «нарезана». В данном случае это количество элементов в последовательности Фибоначчи.
Чтобы вернуть список Фибоначчи из среза, вы можете передать индексы в функцию range() и сделать вот так:
Числа Фибоначчи на Python
Статьи
Введение
В статье разберём 3 способа получения ряда Фибоначчи на Python. Первые два способа будут с использованием циклов, а третий – рекурсивный.
Числа Фибоначчи – бесконечная последовательность чисел, каждое из которых является суммой двух предыдущих и так до бесконечности.
Ряд Фибоначчи
Числа Фибоначчи циклом while
Для начала создадим переменную, в которую будет вводиться длина ряда:
Далее создадим две переменные (f1 и f2), которые будут равняться начальным единицам и выведем их:
Создадим переменную i, которая будет равняться двум:
Добавим цикл, который не закончится, пока переменная i будет меньше переменной n:
Числа Фибоначчи на Python:
Числа Фибоначчи циклом for
Создадим переменную, в которую будет вводиться длина ряда:
Далее создадим две переменные (f1 и f2), которые будут равняться начальным единицам и выведем их:
Добавим цикл, который начинается с 2, и заканчивается на n:
Числа Фибоначчи на Python:
Числа Фибоначчи рекурсией
Для начала создадим рекурсивную функцию, назовём её fibonacci и добавим ей параметр n:
Добавим условие, что если n = 1, или n = 2, то возвращается единица, так как первый и второй элементы ряда Фибоначчи равны единице. Если же условие не срабатывает, то элементы складываются:
Числа Фибоначчи на Python:
Заключение
В данной статье мы научились вычислять n-ное число ряда Фибоначчи на Python. Надеюсь Вам понравилась статья, удачи!