Temat 11: Generatory

Wstecz; Ostatnia modyfikacja: 11.04.2015
  • generatory w Python
  • def squares(a,b):
      for i in range(a,b):
        print("before yield: " + str(i))
        yield i*i
        print("after yield: " + str(i))
    
    for s in squares(1,6):
      print(s)
    
  • Przykład: generator dla liczb Fibonacciego.
  • def fib():
      x = 0
      y = 1
      i = 0
      while True:
        z = x+y
        x = y
        y = z
        i += 1
        yield(z)
    
  • Ćwiczenie 2: Wykorzystaj powyższy generator do wypisania wszystkich liczb Fibonacciego mniejszych niż 10000.
  • Ćwiczenie 3: napisz generator liczb pseudolosowych wykorzystując następujący wzór: $$I_{j+1} = (a\cdot I_j + c)\ mod\ m$$ Więcej na temat tego generatora: wiki oraz RANDU wiki.