1 or 1/0 doesn't raise an exception
python.list at tim.thechases.com
Sun Dec 14 03:23:53 CET 2008
> Is it a feature that
> 1 or 1/0
> returns 1 and doesn't raise a ZeroDivisionError? If so, what's the rationale?
Yes, it's a feature:
When you have "True or False", you know it's true by the time
you've got the first piece, so there's no need to evaluate the
2nd piece. The opposite is helpful too:
lst = [some list or an empty list]
if lst and lst == 42:
This ensures that the "lst" doesn't fail if lst is empty,
because lst evaluating to false (an empty list) short-circuits
preventing the evaluation of "lst".
More information about the Python-list