📅  最后修改于: 2023-12-03 14:56:22.475000             🧑  作者: Mango
斐波那契数列是指,第一项和第二项均为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等测试框架,可以自学一下,它们能帮助您提高代码质量和效率。