Fibonacci series in python is a sequence of numbers in which the current term is the sum of the previous two terms. The first two terms of the Fibonacci sequence are 0 and 1. So what is the logic behind this? Let’s understand it in detail.
The logic behind Fibonacci sequence in python
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597,… this is the Fibonacci sequence. As you can see, the first two terms of the sequence are 0 and 1. The third term is an addition to the first two terms and so on.
In general,
Fn = Fn-1 + Fn-2
Where Fn is a current term.
Examples of the Fibonacci series program in python
We can implement the Fibonacci series logic in many ways. We will learn with for loop, while loop, recursion, and dynamic memory allocation.
Table of Contents
Fibonacci series in python using for loop
Accept the number of terms from the user and pass that number in the loop and implement the Fibonacci number’s logic in the loop.
Example
n = int(input("Enter number of terms: "))
n1, n2 = 0, 1 # first two terms of fibonacci series
i = 0 #variable for loop
if n <= 0:
print("Please enter a positive integer")
elif n == 1:
print("Fibonacci sequence upto",n,":")
print(n1)
else:
print("Fibonacci sequence:")
for i in range(n): #for loop upto nth term
print(n1)
sum = n1 + n2 #Logic for the fibonacci series
n1 = n2
n2 = sum
i += 1
Output
Enter number of terms: 10
Fibonacci sequence:
0
1
1
2
3
5
8
13
21
34
Fibonacci series in python using while loop
Take a number of terms of the Fibonacci series as input from the user and iterate while loop with the logic of the Fibonacci series.
Example
n = int(input("Enter number of terms: "))
n1, n2 = 0, 1 # first two terms of fibonacci series
i = 0
if n <= 0:
print("Please enter a positive integer")
elif n == 1:
print("Fibonacci sequence upto",n,":")
print(n1)
else:
print("Fibonacci sequence:")
while(i<n): # Exit condition
print(n1)
sum = n1 + n2 #Logic for the fibonacci series
n1 = n2
n2 = sum
i += 1
Output
Enter number of terms: 10
Fibonacci sequence:
0
1
1
2
3
5
8
13
21
34
Fibonacci series using recursion in python
Same logic as above, accept a number from the user and pass it to the function. The function will return the value and outside we print it.
def Fibonacci(n): #fibinacci function
if n < 0:
print("Incorrect input")
elif n == 0:
return 0
elif n == 1 or n == 2:
return 1
else:
return Fibonacci(n - 1) + Fibonacci(n - 2) #Logic for the fibonacci series
n = int(input("Enter number of terms: "))
i = 0
for i in range(n):
print(Fibonacci(i))
Output
Enter number of terms: 10
0
1
1
2
3
5
8
13
21
34
Printing Nth term of Fibonacci series using recursion
Accept a number of a term from the user and pass it to the function. It will return the exact term of the Fibonacci series.
Example
def Fib(x): #fibinacci function
if x < 0:
print("Incorrect input")
elif x == 0:
return 0
elif x == 1 or x == 2:
return 1
else:
return Fib(x-1) + Fib(x-2) #Logic for the fibonacci series
x = int(input("Enter number of terms: "))
print(Fib(x))
Output
Enter number of terms: 10
55
Printing Fibonacci series dynamically
Initialize an array with 0 and 1 and accept a number of terms from the user. The function will append the values to the array which will reduce memory wastage.
Example
def fib(n):
a = [0,1]
if n == 1:
print('0')
elif n == 2:
print(a)
else:
while(len(a) < n):
a.append(0)
if(n == 0 or n == 1):
return 1
else:
a[0]=0
a[1]=1
for i in range(2, n):
a[i]=a[i - 1]+a[i - 2]
print("First {} terms of fibonacci series:".format(n),a)
return a[n - 2]
n = int(input("Enter number of term: "))
fib(n)
Output
Enter number of term: 10
First 10 terms of fibonacci series: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]