📜  斐波那契数列 python 2.7 - Python (1)

📅  最后修改于: 2023-12-03 15:26:13.794000             🧑  作者: Mango

斐波那契数列 Python 2.7

斐波那契数列是一种常见的数列,其前两项为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中实现斐波那契数列的过程和测试代码。