In the 13th century, the Italian mathematician Leonardo Fibonacci, as a way to explain the geometric growth of a population of rabbits, devised a mathematical sequence that now bears his name. The first two terms in this sequence, Fib(0) and Fib(1), are 0 and 1, and every subsequent term is the sum of the preceding two. Thus, the first several terms in the Fibonacci sequence look like this:

Fib(0) = 0
Fib(1) = 1
Fib(2) = 1 (0 + 1)
Fib(3) = 2 (1 + 1)
Fib(4) = 3 (1 + 2)
Fib(5) = 5 (2 + 3)

Write a program that displays the terms in the Fibonacci sequence, starting with Fib(0) and continuing as long as the terms are less than 10,000. Thus, your program should produce the following sample run:

This program lists the Fibonacci sequence.
0
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765

This program should continue as long as the value of the term is less than the maximum value. To do this, you should use a while loop, presumably with a header line that looks like this:

while term <= MAX_TERM_VALUE:
    ... your code here ...

Note that the maximum term value is specified with a named constant.

Solution

"""
File: fibonacci.py
--------------------
This program lists the terms in the Fibonacci sequence up to
a constant MAX_TERM_VALUE, which is the largest Fibonacci term
the program will display.
"""

# Defines the largest term to display
MAX_TERM_VALUE = 10000


def main():
    print("This program lists the Fibonacci sequence.")
    current_term = 0
    next_term = 1

    while current_term <= MAX_TERM_VALUE:
        print(current_term)
        term_after_next = current_term + next_term
        current_term = next_term
        next_term = term_after_next


if __name__ == '__main__':
    main()