我正在通过 learnpython.org 学习 python。我通过所有基本课程都很好,但是我在生成器级别上遇到了麻烦。
我想我了解该yield
命令的工作原理,但我不知道如何使用它来获得完成课程所需的斐波那契数列。这是我的代码,但它只给了我前 2 个数字。
# fill in this function
def fib():
a,b = 1,0 # Sets the values (is this causing a problem?)
yield a # Sends back the value of a to the iterator (for loop)
b = a + b # Sets the value of b to a + b
yield b # Sends back the value of b to the iterator (for loop)
# testing code
import types
if type(fib()) == types.GeneratorType:
print "Good, The fib function is a generator."
counter = 0
for n in fib():
print n
counter += 1
if counter == 10:
break
这是最烦人的,因为我想完成这个级别,但我不知道如何。