【发布时间】:2012-08-17 14:57:06
【问题描述】:
谁能在这里向我解释一下 yield 语句在这段代码中的实际作用:
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a+b
for number in fibonacci(): # 使用生成器作为迭代器;打印号码
到目前为止我的理解是,我们正在定义一个函数finonacci(),没有参数?
在函数内部,我们定义 a 和 b 等于 0 和 1,接下来,虽然这是真的,但我们将产生 a。这实际上在做什么?此外,同时产生a? a 现在等于b,而b 现在等于a + b。
下一个问题,对于fibonacci() 中的数字,这意味着函数中的每个数字还是什么?我同样对产量和“数量”实际上在做什么感到困惑。显然我知道这意味着fibonacci() 打印号码中的每个号码。我实际上是在不知道数字的情况下定义数字吗?
谢谢,如果我不清楚,对不起。顺便说一句,这是针对 Euler 项目的,如果我知道如何很好地编程,这将是一件轻而易举的事,但我正在努力学习这一点。
【问题讨论】:
标签: python