python - 单语句斐波那契

标签 python list-comprehension fibonacci

<分区>

Possible Duplicate:
Fibonacci numbers, with an one-liner in Python 3?

这可能是一件很容易的事情,但我对 Python 还是个新手。我想出了这个单一的声明斐波那契。

[fibs.append(fibs[-2]+fibs[-1]) for i in xrange(1000)]

虽然不是真正的单一声明。在触发此语句之前,我需要初始化列表 fibs,即 fibs = [0, 1]

现在,我有两个问题,

  1. 我们如何摆脱这个列表初始化语句,fibs = [0, 1],以使其成为真正的单一语句?

  2. 原始语句打印 None n 次;其中 n 是在 xrange() 中传递的数字。有什么办法可以完全避免这种情况吗?或者如果语句可以打印系列则更好。那么我们就不需要显式打印 fibs

[已编辑]

或者我们是否有任何替代 list.append() 的方法,它返回它附加到的 list

最佳答案

这个有效:

for n in range(1000):
    print(0.4472135954999579392818347337462552470881236719223051448541*(pow(1.6180339887498948482045868343656381177203091798057628621354,n) - pow(-0.618033988749894848204586834365638117720309179805762862135,n)))

这是比奈公式的一个实现。 http://en.wikipedia.org/wiki/Fibonacci_number#Relation_to_the_golden_ratio

关于python - 单语句斐波那契,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6504319/

相关文章:

java - 对于非常大的 N 求斐波那契第 N 项

python - 元素不是模式的元素

python - 将一个复杂的字符串 ('2,3-5,50-60,70' ) 分解到列表中

python - 如何在 Python 中扩展这个嵌套列表理解

java - Java 中的斐波那契算法

c++ - 这个矩阵博览会代码是对数的吗?

python - 如何在 Kivy 屏幕上打印文本值

python - 有没有办法让字典键成为一个范围?

python - re.sub 仅替换前两个实例

python - 在python 3中创建矩阵