beginner question fibonacci
Robert Kern
rkern at ucsd.edu
Sun Jul 17 09:53:04 EDT 2005
Joon wrote:
>
> >>> # Fibonacci series:
> ... # the sum of two elements defines the next
> ... a, b = 0, 1
> >>> while b < 10:
> ... print b
> ... a, b = b, a+b
> ...
> 1
> 1
> 2
> 3
> 5
> 8
>
> >>> a, b = 0, 1
> >>> while b < 10:
> print b
> a = b
> b = a+b
>
> 1
> 2
> 4
> 8
>
> Why a, b = b, a+b isn't a = b; b = a+b ?
It's actually equivalent to:
temp = (b, a+b)
a = temp[0]
b = temp[1]
The temporary tuple object is created first, with the old values of a
and b. Then a and b are reassigned. The value of a doesn't change until
*after* a+b is calculated.
--
Robert Kern
rkern at ucsd.edu
"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
More information about the Python-list
mailing list