On 3/23/06, Ian Bicking <[EMAIL PROTECTED]> wrote:
> When I was just first learning Python I thought this would work:
>
>    for item in select_results:
>        ...
>    else:
>        ... stuff when there are no items ...
>
> But it doesn't work like that.

On 3/23/06, Brett Cannon <[EMAIL PROTECTED]> wrote:
> I have to admit that is what I initially thought as well.  I think it
> is because when I read 'else' I viewed it as an alternative if the
> clause it was attached to didn't happen (ala an 'if' statement).

Yeah, I use for-else occasionally, and I know how it works in Python,
but every time I want to special-case the empty iterable case, I still
have to remind myself that the else-clause doesn't do what I want it
to.

There was talk previously_ about removing the else clause on for-loops
(and while-loops).  One possibility would be to change the else-clause
to behave as expected above (i.e. only executed when the loop fails to
iterate over any items).

I don't feel strongly on this one way or another -- I use the current
for-else syntax about as often as I need to special-case an empty
iterable.  Just thought I'd point out the old thread since it was
aimed at Python 3000-ish anyway.

.. previously: http://mail.python.org/pipermail/python-dev/2005-July/054695.html

STeVe
--
Grammar am for people who can't think for myself.
        --- Bucky Katt, Get Fuzzy
_______________________________________________
Python-3000 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to