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:

http://en.wikipedia.org/wiki/Short-circuit_evaluation

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[0] == 42:

This ensures that the "lst[0]" doesn't fail if lst is empty, because lst evaluating to false (an empty list) short-circuits preventing the evaluation of "lst[0]".

-tkc


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to