马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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()'''
|