i=2; lst=[i**=2 while i<1000]
duncan.booth at invalid.invalid
Tue Dec 6 11:08:05 EST 2005
Steve Holden wrote:
>>>>lst=[i**=2 while i<1000]
>>>>of course this could be easily rewritten into
> Don't you have an interpreter you could run the code in to verify that
> it does indeed loop interminably? You seem to be assuming that the
> expression i**2 changes the value of i. It doesn't.
I think that like me you read 'i**2' when the OP actually wrote 'i**=2'.
i**=2 will change the value of i in the conventional while loop. In the
list comprehension it is of course a syntax error even if you assume list
comprehensions are expanded to allow the while.
More information about the Python-list