> Something that is being missed is the idea of changing conditions. A > for loop assumes known boundaries. > > def condition_test(): > # check socket status > # return true if socket good, false otherwise > > while condition_test(): > # do stuff > > allows the loopiing code to react to changing conditions. Which of > couse is why we like to keep while loops around ;-0
You can always use break to, well, break out of the loop - and as for is working over iterables which might very well be generators that deliver an infinite amount of data, the break-condition can (and often will, even if one used while) work on the current object instead of some otherwise unsused index. So above becomes: for item in items: if condition(item): break ... where the while would be still pretty ugly IMHO :) Diez -- http://mail.python.org/mailman/listinfo/python-list