On Feb 9, 7:36 pm, Tim Chase <[email protected]> wrote:
> Larry Hudson wrote:
> > But a minor rearrangement is simpler, and IMHO clearer:
>
> > if 'mystring' not in s:
> > print 'not found'
> > else:
> > print 'foundit'
> > print 'processing'
>
> I've always vacillated on whether that would better be written as
> Larry does, or as
>
> if 'mystring' in s
> print 'foundit'
> print 'processing'
> else:
> print 'not found'
[pass]
> Any thoughts on how others make the choice?
I almost always arrange it as follows, regardless of the size of the
blocks or whether the condition is negated or not:
if (typical-condition):
typical-case
else:
exceptional-case
In particular I almost always test if something is not None, because
being None is almost always the exceptional case:
if x is not None:
...
else:
...
However, whenever the exceptional case action is to break, return,
continue, or raise an exception, I'll test for it and leave the
typical case unnested:
if (exceptional-condition):
exceptional-case
typical-case
No, it deosn't bother me in the least that I sometimes test for the
exceptional case and sometimes for the typical.
Whenever there is no typical case or exceptional case I'll go for the
simpler condition.
Carl Banks
--
http://mail.python.org/mailman/listinfo/python-list