Sure! Let’s create a Python module that solves a common problem: calculating the nth Fibonacci number. The Fibonacci sequence is a series of numbers where each number is the sum of the two preceding ones, usually starting with 0 and 1.
The nth Fibonacci number can be calculated using a few different methods, but for simplicity, we will implement an iterative approach as well as a recursive approach.
Fibonacci Module
Here's how the Python module could look:
# fibonacci.py
def fibonacci_iterative(n):
"""
Calculate the nth Fibonacci number using an iterative approach.
Args:
n (int): The index of the Fibonacci sequence.
Returns:
int: The nth Fibonacci number.
Raises:
ValueError: If n is less than 0.
"""
if n < 0:
raise ValueError("n must be a non-negative integer.")
elif n == 0:
return 0
elif n == 1:
return 1
a, b = 0, 1
for _ in range(2, n + 1):
a, b = b, a + b
return b
def fibonacci_recursive(n):
"""
Calculate the nth Fibonacci number using a recursive approach.
Args:
n (int): The index of the Fibonacci sequence.
Returns:
int: The nth Fibonacci number.
Raises:
ValueError: If n is less than 0.
"""
if n < 0:
raise ValueError("n must be a non-negative integer.")
elif n == 0:
return 0
elif n == 1:
return 1
return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2)
if __name__ == "__main__":
import sys
if len(sys.argv) != 3:
print("Usage: python fibonacci.py <method: iterative|recursive> <n>")
sys.exit(1)
method = sys.argv[1].lower()
n = int(sys.argv[2])
if method == "iterative":
result = fibonacci_iterative(n)
elif method == "recursive":
result = fibonacci_recursive(n)
else:
print("Unknown method. Choose either 'iterative' or 'recursive'.")
sys.exit(1)
print(f"The {n}th Fibonacci number is: {result}")
How to use the module
- Save the code above into a file named
fibonacci.py
. - Open a terminal or command prompt.
- Navigate to the directory where
fibonacci.py
is located. - Execute the script using one of the following commands:
For the iterative approach:
python fibonacci.py iterative 10
For the recursive approach:
python fibonacci.py recursive 10
Replace 10
with any non-negative integer n
to calculate the nth Fibonacci number.
Explanation
- The module defines two functions:
fibonacci_iterative
andfibonacci_recursive
which calculate the nth Fibonacci number using iterative and recursive methods, respectively. - It checks that the input is valid (non-negative integer) and raises a
ValueError
for invalid inputs. - When the module is run directly, it accepts command-line arguments to specify the method and the desired Fibonacci number index.
Feel free to modify or expand upon this module as needed!