Code
python
# Generator function
def fibonacci(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
for num in fibonacci(10):
print(num)
# Generator expression
squares = (x**2 for x in range(1000000))
print(next(squares))
# Infinite generator
def counter(start=0):
while True:
yield start
start += 1