On Thu, Aug 23, 2012 at 7:05 PM, Mark Carter <alt.mcar...@gmail.com> wrote:
> Suppose I want to define a function "safe", which returns the argument passed 
> if there is no error, and 42 if there is one. So the setup is something like:
>
> def safe(x):
>    # WHAT WOULD DEFINE HERE?
>
> print safe(666) # prints 666
> print safe(1/0) # prints 42
>
> I don't see how such a function could be defined. Is it possible?

That can work ONLY if the division of 1/0 doesn't raise an exception.
This is why the concept of NaN exists; I'm not sure if there's a way
to tell Python to return NaN instead of bombing, but it's most likely
only possible with floating point, not integer.

However, there's an easier way.

try:
    print 1/0
except ZeroDivisionError:
    print 42

Catch the exception and do with it what you will.

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

Reply via email to