Hi, Let's see what happens iteration by iteration. First iteration:
def fibonacci(max): #using a generator > a, b = 0, 1 > # The value of a is 0 and b is 1, easy :) > while a < max: > yield a > # yield a (0) (yield is a keyword that is used like return but returns a generator). This value will be sent to the for iteration on the first iteration. On the second iteration: > a, b = b, a+b > # a is 1 now and b is 1 (1+0) And then yield a which now is 1 On the third iteration: > a, b = b, a+b > # a is 1 now and b is 2 (1+1) And then yield a which now is 1 On the forth iteration: > a, b = b, a+b > # a is 2 now and b is 3 (2+1) And then yield a which now is 2 > for n in fibonacci(1000): > print n, > ------ > n is the value for each iteration that the yield statement is returning. You can read the response on this thread if you want to understand more about yield, generators and iterators. Thanks, Raúl
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor