[Python-ideas] for/else statements considered harmful

Stephen J. Turnbull stephen at xemacs.org
Thu Jun 7 12:50:14 CEST 2012

Devin Jeanpierre writes:
 > On Thu, Jun 7, 2012 at 4:31 AM, Yuval Greenfield <ubershmekel at gmail.com> wrote:

 > > I believe using for/else will cause you and maintainers of your
 > > code to make more mistakes.
 > I don't follow. What mistakes would people make? Why would they
 > make them?

There was a long thread about a year ago on this list, where a couple
of less experienced programmers and even a couple of people who have
long since proven themselves reliable, gave code examples that
obviously hadn't been tested.<wink/>  There's a summary at:


The reason they make such mistakes is that there's a strong
association of "else" with "if-then-else", and for many people that
seems to be somewhere between totally useless and actively misleading.

For me, there are a number of reasonable mnemonics, a couple given in
this thread, but IIRC the only idiom I found really plausible was

    def search_in_iterable(key, iter):
        for item in iter:
            if item == key:
                return some_function_of(item)
            return not_found_default

More information about the Python-ideas mailing list