Python Fibonacci generator using generators
Python: Generators Yield Exercise-4 with Solution
Write a Python program to implement a generator function that generates the Fibonacci sequence.
In mathematics, the Fibonacci sequence is a sequence in which each number is the sum of the two preceding ones. Numbers that are part of the Fibonacci sequence are known as Fibonacci numbers. Starting from 0 and 1, the first few values in the sequence are: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144.
Sample Solution:
Python Code:
def fibonacci():
x, y = 0, 1
while True:
yield x
x, y = y, x + y
# Accept input from the user
n = int(input("Input the number of Fibonacci numbers you want to generate? "))
print("Number of first ",n,"Fibonacci numbers:")
fib = fibonacci()
for _ in range(n):
print(next(fib),end=" ")
Sample Output:
Input the number of Fibonacci numbers you want to generate? 4 Number of first 4 Fibonacci numbers: 0 1 1 2
Input the number of Fibonacci numbers you want to generate? 10 Number of first 10 Fibonacci numbers: 0 1 1 2 3 5 8 13 21 34
Explanation:
In the above exercise,
- The fibonacci() function is defined as a generator function. It initializes two variables x and y with 0 and 1, respectively.
- The function enters an infinite loop using while True.
- Inside the loop, it uses the yield keyword to yield the current value of x. This represents the Fibonacci number in the sequence.
- After yielding a, the function updates x and y by swapping their values: x becomes y, and y becomes the sum of the previous values of x and y.
- The loop continues, generating the next Fibonacci number each time yield is encountered.
- To use this generator and print the Fibonacci sequence, iterate over it using a loop. Use the next() function to manually retrieve the next Fibonacci number.
Flowchart:
Python Code Editor:
Contribute your code and comments through Disqus.
Previous: Python prime number generator using generators.
Next: Python permutations generator using generators.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://198.211.115.131/python-exercises/generators-yield/python-generators-yield-exercise-4.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics