【发布时间】:2011-04-26 14:35:28
【问题描述】:
我需要编写一个程序来询问打印的斐波那契数字的数量,然后将它们打印为 0、1、1、2……但我无法让它工作。我的代码如下所示:
a = int(raw_input('Give amount: '))
def fib():
a, b = 0, 1
while 1:
yield a
a, b = b, a + b
a = fib()
a.next()
0
for i in range(a):
print a.next(),
【问题讨论】:
-
我认为'while True'更简洁
-
第二次迭代如何理解“a=1”?我们不应该写 a = a+b 而不是 "a, b=b, a+b"
-
@user177196 该表达式是一个由两部分组成的表达式。首先,它使用
a和b的当前值创建一个带有(b,a+b)的元组,然后在将其分配给a,b时解压缩该元组。 (从技术上讲,Python 可以做一些优化,但我暂时忽略了这一点)。
标签: python fibonacci naming-conventions