📅  最后修改于: 2023-12-03 15:26:13.794000             🧑  作者: Mango
斐波那契数列是一种常见的数列,其前两项为0和1,之后的每一项都是前两项之和。在Python 2.7中,我们可以使用循环或递归两种方式来实现斐波那契数列。
循环实现是通过不断迭代计算斐波那契数列的每一项来得到。具体实现可以使用for循环或while循环。
def fibonacci_loop(n):
current = 0
next = 1
for i in range(n):
current, next = next, current + next
return current
上述代码中,current和next分别表示当前项和下一项的值,通过一次交互赋值,我们就可以计算出下一项的值。循环n次后,我们返回当前项。
递归实现是将问题分解成多个子问题,通过递归调用自身来得到计算结果。具体实现可以使用if-else语句,用于判断当前项是否为前两项,以及用于在递归调用中传递上一次的计算结果。
def fibonacci_recursive(n):
if n < 0:
return None
elif n == 0:
return 0
elif n == 1:
return 1
else:
return fibonacci_recursive(n-1) + fibonacci_recursive(n-2)
上述代码中,首先判断n是否小于0,如果是,则返回None;如果n等于0或1,则直接返回对应的值。如果n大于1,则通过递归调用自身来计算前两项的和。
我们可以编写测试代码来验证上述两种实现的正确性。
def test_fibonacci():
assert fibonacci_loop(0) == 0
assert fibonacci_recursive(0) == 0
assert fibonacci_loop(1) == 1
assert fibonacci_recursive(1) == 1
assert fibonacci_loop(5) == 5
assert fibonacci_recursive(5) == 5
assert fibonacci_loop(10) == 55
assert fibonacci_recursive(10) == 55
test_fibonacci()
测试代码中,我们分别测试了0,1,5和10四个数的斐波那契值,验证了两种实现都能正确地计算出斐波那契数列的每一项。
以上就是在Python 2.7中实现斐波那契数列的过程和测试代码。