"""生成器实现斐波那契数列"""

#著名的斐波拉契数列(Fibonacci),除第一个和第二个数外,任意一个数都可由前两个数相加得

到:

1, 1, 2, 3, 5, 8, 13, 21, 34, …

#斐波拉契数列用列表生成式写不出来,但是,用函数把它打印出来却很容

def fbnq(num):

a=0

b=1

current_index=0  #当前下标

while current_index<num:

    result= a
    
    a,b =b,a+b
    
    current_index+=1

#程序遇到yield返回值之后会暂停,下次执行时会从这里开始,当后面遇到return时会立即结束迭代

    yield result  #一个函数中出现yield,则说明该函数是生成器
    
    # return "haha"

if name == ‘main’:

ret=fbnq(3)


 # while True:

	 #   try:
	 	#	ret1=(next(ret)
    
   ##   print(ret1)
        
   # except StopIteration as e:
    
     #  print(e.value)


print(next(ret))

print(next(ret))

print(next(ret))

#溢出报错

# print(next(ret))

# for i in ret:

#     print(i)

猜你喜欢

转载自blog.csdn.net/qq_44090577/article/details/89189187
今日推荐