生成器函数 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)