On 21/04/15 01:44, Jim Mooney wrote:
Why does the compiler choke on this? It seems to me that the enhanced
subtraction resolves to a legitimate integer

That's your mistake. Assignment is a statement not an expression. It does not return anything. In fact its just illegal to try:

>>> print x=3
  File "<stdin>", line 1
    print x=3
           ^
SyntaxError: invalid syntax
>>>

You have to do all the assignments up front.
If you don;t need to store the new value you can just
put the subtraction as an argument:

   sum += int(char) * 2**(start-1)

But if you need start to hold that new value you must
do that assignment before using it.

BTW.
This is 'A Good Thing' since it avoids a whole class
of bug that is very common in languages like C and
encourages breaking up complex statements into
multiple lines which aids debugging, readability
and maintenance.

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos


_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to