编写接受参数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)
非常感谢!
答案 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)