在Python 3中创建Fibonacci序列函数

时间:2015-02-17 04:02:06

标签: python-3.x

我正在尝试创建一个函数,它打印Fibonacci序列中前4个数字的列表,Fibonacci序列中的前10个数字,然后是Fibonacci序列中的“前-4个”数字。 Fibonacci序列中的“-4”数字应该返回一个空列表,因为序列中没有“-4”数字。我需要函数来打印3个列表作为main()函数的最终结果。到目前为止,这是我的代码,我是新手,所以任何帮助都会受到赞赏。

fn = []

def F(n):
    i = 0
    a = 0
    b = 1
    for i in range(0,n):
        temp = a
        a = b
        b = temp + b
    fn.append(b)
    i = i + 1
    return fn


main():
    print F(4)
    print F(10)
    print F(-4)

1 个答案:

答案 0 :(得分:0)

生成Fibonacci数的函数是正确的,除了应在函数体中声明全局变量fn = []。另外,正如@alfasin的评论中所建议的那样,a, b = b, a + b更像是Pythonic。

def fib_list(n):
    a = 0; b = 1; fib_list = []
    if n <= 0:
        return 
    for i in range(0, n):
        a, b = b, a + b
        fib_list.append(b)
    return fib_list

我可以在您的代码中找到的其他问题:
* print不是Python 3.x.x中的语句,而是一个函数,即print F(4)应为print(F(4))
* main():应更改为if __name__ == '__main__':