>>> 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
>>>