On Feb 9, 7:36 pm, Tim Chase <python.l...@tim.thechases.com> 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

Reply via email to