[Python-ideas] "While" suggestion

Stavros Korokithakis stavros at korokithakis.net
Thu Jul 3 16:06:45 CEST 2008


Hello all,
I have noticed that sometimes "while" loops produce "unpythonic" 
patterns, such as the following:

data = my_file.read(1024)
while data:
     do_something(data)
     data = my_file.read(1024)

The assignment is repeated, which is less than optimal. Since we don't 
have a while statement that does the check in the end, would it not be 
better if the syntax of while could be amended to  include something 
like this (in the spirit of the new "with" keyword)?:

while my_file.read(1024) as data:
    do_something(data)

This would terminate the loop when myfile.read() evaluated to False, and 
it is more pythonic than repeating onesself.

I contacted GvR about this, and he replied that this syntax would have 
to be part of the expression than part of the while, which I agree would 
be less than ideal. However, I don't see why it would have to be part of 
the expression, since the "while" could easily assign the value of the 
expression to the variable and break if it evaluates to False.

I would appreciate any thoughts on this,
Stavros Korokithakis
-------------- next part --------------
A non-text attachment was scrubbed...
Name: stavros.vcf
Type: text/x-vcard
Size: 143 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20080703/d098391a/attachment.vcf>


More information about the Python-ideas mailing list