[Tutor] Fibonacci Series

Rafael Knuth rafael.knuth at gmail.com
Sun Nov 24 14:05:43 CET 2013


Now I got it, thanks :-)

a, b = b, b + a

... I was was wrongly assuming that "a" and "b" on the left side "talk" to
each other and that  "a" tells "b" something like: "Hey 'b' ... I just
assigned another value to you, make sure you execute it." But "a" and "b"
don't talk to each other. Each of them executes what it is supposed to and
doesn't take notice of what its neighbor variable does. The more
sophisticated explanation (from my view point as an absolute beginner who's
not familiar with most programming concepts yet) is that "a" and "b" on the
left side are unchangable tuples and they simply get unpacked on the right
side.

I wrote an even more primitive program which helped me understand what
*exactly* happens with "a" and "b" with each run:

# 1st run
a, b = 1, 5
print(a) # 1
print(b) # 5

# 2nd run
a, b = b, b + a
print(a) # a = b = 5
print(b) # b + a = 5 + 1 = 6

# 3rd run
a, b = b, b + a
print(a) # a = b = 6
print(b) # b + a = 6 + 5 = 11

# 4th run
a, b = b, b + a
print(a) # a = b = 11
print(b) # b + a = 11 + 6 = 17

# 5th run
a, b = b, b + a
print(a) # a = b = 17
print(b) # b + a = 17 + 11 = 28

# 6th run
a, b = b, b + a
print(a) # a = b = 28
print(b) # b + a = 28 + 17 0 45

All the best,

Raf


On Sun, Nov 24, 2013 at 12:33 PM, Dave Angel <davea at davea.name> wrote:

> On Sun, 24 Nov 2013 11:24:43 +0100, Rafael Knuth <rafael.knuth at gmail.com>
> wrote:
>
>>     a, b = b, a +b
>>
>
>
>  a = b = 1
>> b = a + b = 1 + 1 = 2
>>
>
> I suggest you play with the statement a bit. Print out both values each
> time through the loop.
>
> The expression b, a+b produces a tuple. The left side a, b *unpacks* that
> tuple into the two variables.a and b.
>
> Perhaps a simpler case might help. Try a, b = b, a   What would you expect
> it to do and why?
>
> --
> DaveA
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20131124/1d3cda93/attachment.html>


More information about the Tutor mailing list