Ian Bicking: >>> 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.
Brett Cannon: >> 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). Steven Bethard: > 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. The same for me. I sometimes may have had a need for the current semantics of the else after loops, but I don't remember it; on the other hand, I have had a use for the no-iteration case a number of times. Somehow I find it hard to stick into my mind that's not what it means. > 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'd like that. Of course it would break compatibility with the past, and may cause subtle bugs; the advantages would surpass the drawbacks, in my case, since I rarely use the current semantics, if at all. -- Nicola Larosa - http://www.tekNico.net/ Life [...] is a tale told by an idiot, full of sound and fury, signifying nothing. -- William Shakespeare, MacBeth Life is like the chicken ladder: short and full of shit. -- Anonymous _______________________________________________ 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
