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

Reply via email to