Hello,

thanks for all the replies.

Of course I am aware that my use of the "else:" is different from the "break" case
when it comes to "return". For return, the "else:" is not needed, as it won't continue
the execution.

>     def _areConstants(expressions):
>         for expression in expressions:
>             if not expression.isExpressionConstantRef():
>                 break
>             if expression.isMutable():
>                 break
>         else:
>             return True
>         return False

That's not an improvement but also not the obvious way to rewrite the
code to suppress the, IMHO legitimate, warning.  Instead of introducing
``break``\s for an unnecessary ``else`` clause one could also just
remove that unnecessary ``else``::

Mind you, I am using the "else:" specifically to express, that I expect the loop
to return based on one element. I agree with you that the suggested code is
making that hard to discern and that removing the "else" clause is an option.

The thing is, I developed a style, where a return in the loop always leads to
a return in a else. It's the pick and choose method. So any time, I make
decisions based on an iterable, I do it like that.

def _areConstants(expressions):
    for expression in expressions:
        if not expression.isExpressionConstantRef():
            return False
        if expression.isMutable():
            return False
    return True

Which improves the situation in a way, because now the fellow Python
coder doesn't wonder where the ``break`` should be or if the author
understood the semantics of ``else`` on loop constructs.

That precisely is the question. Is the "else" an emphasis, or is it an error
indicator. I can assure you that I did it on purpose. But if nobody gets that,
it kinds of misses the point.

I take the general feedback to say "yes, using else: without need is a style
problem". So I will try and give it up. :-)
 
I would also avoid this question by using `all()` here.  :-)

I learned of "any" and "all" relatively late. I agree for booleans it's the better
choice, but it's another subject. Many times, it's not a boolean return value.

Yours,
Kay