生成器函数 yield

生成器函数 yield
用 yield 代替return

#yield 与 return
def fun():
    if 1:
        yield x
    else:
        return y

菲波那切数列

def fab(max):
    n,a,b=0,0,1
    while n<max:
        print(b)
        a,b=b,a+b
        n+=1
max=int(input("a num:\n"))
fab(max)
def f():
    print("one")
    yield 1
    print("two")
    yield 2
    print("three")
    yield 3
r=f()
print(r.__next__())
print(r.__next__())
print(r.__next__())

输出
one
1
two
2
three
3

yield方式

def fab(max):
    n,a,b=0,0,1
    while n<max:
        yield b
        a,b=b,a+b
        n+=1
max=int(input("a num:\n"))
for i in fab(max):
    print(i)