在Python中循环Fibonacci序列

时间:2015-02-27 23:34:04

标签: python fibonacci

我正在用Python 2.7.6编写一个程序来计算Fibonacci序列(1,1,2,3,5,8等)。这是代码(到目前为止):

x = int(input("Enter a number: "))
y = int(input("Enter the number that comes before it:"))
z = x + y
a = z + x
b = a + z
c = b + a
d = c + b
e = d + c
f = e + d
g = f + e
print x, z, a, b, c, d, e, f, g

有没有办法循环播放这个过程,以便我不必继续输入f = e + d和其他人?

2 个答案:

答案 0 :(得分:1)

当然,只需使用某种形式的循环。例如,如果您想在x之后列出前11个斐波那契数字:

fiblist = [x]
for _ in range(10):
    z = x + y
    fiblist.append(z)
    x, y = z, x
print(fiblist)

(或使用循环代替单print来改变输出的化妆品 - 与您的核心Q无关。)

出于不同的目的(例如“列出序列中的所有数字,直到第一个数字超过100”),您可以轻松调整循环(例如代替for使用while x <= 100:)。

答案 1 :(得分:1)

您可以编写循环或只使用Python中的内置reduce函数。

    fib = lambda n: reduce(lambda x, y: x+[x[-1]+x[-2]],range(n-2), [0, 1])