45_yield.py 463 B

123456789101112131415161718192021222324252627282930
  1. def f(n):
  2. for i in range(n):
  3. yield i
  4. x = 0
  5. for j in f(5):
  6. x += j
  7. assert x == 10
  8. a = [i for i in f(6)]
  9. assert a == [0,1,2,3,4,5]
  10. def f(n):
  11. for i in range(n):
  12. for j in range(n):
  13. yield i, j
  14. a = [i for i in f(3)]
  15. assert len(a) == 9
  16. assert a[0] == (0,0)
  17. assert a[1] == (0,1)
  18. assert a[2] == (0,2)
  19. assert a[3] == (1,0)
  20. assert a[4] == (1,1)
  21. assert a[5] == (1,2)
  22. assert a[6] == (2,0)
  23. assert a[7] == (2,1)
  24. assert a[8] == (2,2)