Steve Holden wrote:

>>>>lst=[i**=2 while i<1000]
>>>>
>>>>of course this could be easily rewritten into
>>>>i=2
>>>>lst=[]
>>>>while i<1000:
>>>>    i**=2
>>>>    lst.append(i)
>>>>
>>>
...
> 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.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to