At 09:01 PM 6/12/2005 -0700, Guido van Rossum wrote: >If we have to do this, PEP 315 has my +0. > >It is Pythonically minimal and the motivation rings true: I've often >written code like this in the past: > > line = f.readline() > while line: > <do something> > line = f.readline() > >But these days we do that using "for line in f".
Block-copying a file with read() has the same pattern (e.g. in shutil), but you can't make it a for loop. By the way, whatever happened to "and while"? i.e.: while True: data = inp.read(blocksize) and while data: out.write(data) It seemed to me this variation of the syntax had some traction at one point. Anyway, most of the times that I'm annoyed by the current while loop's limitations are due to the need to write things like the above as: while True: data = inp.read(blocksize) if not data: break out.write(data) Which makes it a bit harder to see the control flow. Or more precisely, something like the 'do/while' or 'while/and while' would make it *easier* to see the control flow, since really while isn't *bad*. I seem to recall that Knuth had something to say about the ideal loop being one that allowed you to execute code both before and after the exit condition, and that many languages allow you to have code before, or code after, but few allow you to do both in the same loop, forcing you to either duplicate some code or restructure your approach in order to fit the limitation of the language. _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com