|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
挖坑:最初使用了#pos2迭代生成器结果一直出来一样的输出,以为之前的函数没写好
脱坑(现阶段理解):用for in range(..)迭代没有实例化的生成器会一直输出第一个值
类似坑:请各位大佬分享一下是否有碰到过类似的其他小坑?
- def calc_n():
- n = 0
- while True :
- n = n+1
- print(n)
- sum_n = n * 5 + 1
- for i in range(0,4):
- sum_n = sum_n * 5 + 1
- yield sum_n
-
- '''generator_a = calc_n() #pos1
- for i in range(1000):
- print(next(generator_a))
- input()'''
-
- '''for i in range(1000): #pos2
- print(next(calc_n()),calc_n())
- input()'''
- for i in calc_n(): #pos3
- print(i)
- input()
复制代码
next(calc_n())会执行函数体,所以每次n=0,看下这个就懂
- def calc_n():
- n = 0
- print('我被运行了')
- while True :
- n = n+1
- print(n)
- sum_n = n * 5 + 1
- for i in range(0,4):
- sum_n = sum_n * 5 + 1
- yield sum_n
-
- '''generator_a = calc_n() #pos1
- for i in range(1000):
- print(next(generator_a))
- input()'''
-
- for i in range(1000): #pos2
- print(next(calc_n()),calc_n())
- input()
- '''
- for i in calc_n(): #pos3
- print(i)
- input()'''
复制代码
|
|