Python-生成器函数yield

83 阅读1分钟

>>> def gensquares(N):
	for i in range(N):
		yield i**2

		
>>> for i in gensquares(5):
	print(i,end=':')

	
0:1:4:9:16:


>>> print([x**2 for x in range(5)])
[0, 1, 4, 9, 16]
>>> print([x**2 for x in range(5)],end='::')
[0, 1, 4, 9, 16]::
>>> 
>>> x=gensquares(4)
>>> x
<generator object gensquares at 0x000001A9123EF848>
>>> next(x)
0
>>> next(x)
1
>>> next(x)
4
>>> next(x)
9
>>> next(x)
Traceback (most recent call last):
  File "<pyshell#16>", line 1, in <module>
    next(x)
StopIteration
>>>