# OK def f(): for x in z: yield def f(): for x in z: yield y def f(): for x, y in z: yield x def f(): for x, y in z: yield y def f(): for a, b in z: yield x, y def f(): for x, y in z: yield y, x def f(): for x, y, c in z: yield x, y def f(): for x in z: x = 22 yield x def f(): for x in z: yield x else: print("boom!") def f(): for x in range(5): yield x print(x) def f(): def g(): print(x) for x in range(5): yield x g() def f(): def g(): def h(): print(x) return h for x in range(5): yield x g()() def f(x): for x in y: yield x del x async def f(): for x in y: yield x def f(): x = 1 print(x) for x in y: yield x def f(): for x in y: yield x print(x) def f(): for x in y: yield x z = lambda: x def f(): for x in y: yield x class C: def __init__(self): print(x) def f(): for x in y: yield x, x + 1 def f(): for x, y in z: yield x, y, x + y def f(): global some_global for element in iterable: some_global = element yield some_global def f(): some_nonlocal = 1 def g(): nonlocal some_nonlocal for element in iterable: some_nonlocal = element yield some_nonlocal