📜  用于计算斐波那契数的 Python 程序 - Python (1)

📅  最后修改于: 2023-12-03 14:56:22.475000             🧑  作者: Mango

用于计算斐波那契数的 Python 程序 - Python

简介

斐波那契数列是指,第一项和第二项均为1,之后每一项都是前两项之和。例如:

1, 1, 2, 3, 5, 8, 13, 21, ...

这种数列在计算机科学中被广泛应用,包括密码学、数据压缩、图形学等领域。本文将介绍计算斐波那契数的 Python 程序。

代码

下面来看一个简单的 Python 程序,用于计算斐波那契数列的前n项,其中n是用户输入的。

def fibonacci(n):
    """
        输出斐波那契数列的前n项
        :param n: int
        :return: list[int]
    """
    # 确保n为正整数
    n = int(n)
    if n <= 0:
        raise ValueError("n必须为正整数")

    # 初始化前两项
    fib_list = [1, 1]

    # 计算前n-2项
    for i in range(2, n):
        fib_list.append(fib_list[-1] + fib_list[-2])

    return fib_list

上面这段代码定义了一个名为fibonacci的函数。此函数接受一个整数n作为参数,返回斐波那契数列的前n项。函数使用了一个列表(fib_list)来存储数列的值,并使用循环(for循环)来计算数列的每一项。

测试代码

为了验证代码的正确性,我们可以编写一些测试代码。下面是使用pytest测试框架编写的代码示例。

import pytest

from fibonacci import fibonacci


def test_fibonacci():
    # 检查输入的整数是否生效
    assert fibonacci(1) == [1]
    assert fibonacci(2) == [1, 1]
    assert fibonacci(3) == [1, 1, 2]
    assert fibonacci(4) == [1, 1, 2, 3]

    # 检查输入的不是整数时是否正确报错
    with pytest.raises(ValueError):
        fibonacci("a")

    with pytest.raises(ValueError):
        fibonacci(0)

上面这段代码导入了我们刚刚编写的fibonacci函数,并编写了一个测试函数test_fibonacci。该函数检查了一些输入值,包括正整数、非整数、0等情况,验证了函数的正确性。

总结

本文介绍了计算斐波那契数列的 Python 程序。我们编写了一个名为fibonacci的函数,使用循环计算数列的每一项,并验证了函数的正确性。趁着这个机会,如果您不熟悉pytest和unittest等测试框架,可以自学一下,它们能帮助您提高代码质量和效率。