元组Python中的Fibonacci序列

时间:2014-04-20 14:19:20

标签: python

编写接受参数n的make_fibonacci,该参数生成并返回包含斐波那契序列的前n + 1个项的元组,其中n> = 0.来自其他问题,

def make_fibonacci(n):
    a, b = 0, 1
    for i in range(d):
        a, b = b, a+b

但是因为我需要一个元组中的斐波纳契范围,比如

make_fibonacci(10)  
>>> (0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55)

非常感谢!

6 个答案:

答案 0 :(得分:3)

这是一个天真的解决方案,构造为一个列表并返回一个元组

def make_fibonacci(n):
    a = [0, 1]
    [a.append(a[-1]+a[-2]) for i in xrange(n)]
    return tuple(a)

答案 1 :(得分:2)

def fib(n):
    tup=[]
    a,b = 0,1
    while b<n:
        tup=tup+[b,]
        a,b = b,a+b
    print tup

如果你愿意,你需要附加到元组然后打印

答案 2 :(得分:2)

您可以使用列表执行此操作:

def make_fibonacci(n):
    result = [0]
    a, b = 0, 1
    for i in range(n-1):
        a, b = b, a+b
        result.append(b)
    return tuple(result)


>>> print make_fibonacci(10)
(0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55)

答案 3 :(得分:1)

您可以将其附加到列表中:

def make_fibonacci(n):
    fib = []
    a, b = 0, 1
    for i in range(n):
        a, b = b, a+b
        fib.append(a)
    return tuple(fib)


make_fibonacci(10)

答案 4 :(得分:1)

这个纯粹 适用于元组,并且不受列表限制。

概念知识 可以添加两个元组

def get_fibonacci(n):  # n = no. of terms to be taken in tuple fibonacci_sequence
    a, b = 0, 1
    fibonacci_sequence = (a, b)
    for i in range(n-2):
        a, b = b, a+b
        fibonacci_sequence += (b,)  # Comma is needed at the end to accept a tuple with a single value
    print fibonacci_sequence
get_fibonacci(10)

注意 :这已经在Python控制台v2.7.12上测试过,它可能无法在Python 3.x及更高版本上运行。如果您发现它工作正常,请更正此声明。  积极修改始终是欢迎!

答案 5 :(得分:0)

fib = (0,1,1)
print(fib)
for i in range(10):
    fib = fib + (fib[i+1] + fib[i+2],)
print(fib)