[Tutor] Advice for my function, isPrime(n), please

Dick Moores rdm at rcblue.com
Fri Jul 18 20:25:56 CEST 2008


At 10:03 AM 7/18/2008, Kent Johnson wrote:
>On Fri, Jul 18, 2008 at 11:32 AM, Dick Moores <rdm at rcblue.com> wrote:
> >    if x == 0:
> >        return False
> >    else:
> >        return True
>
>Could be just
>   return x!=0

I see this works, but it's Greek to me. HOW does it work? And why is 
it better than what I had? Is it faster? Or what?

>or
>   return not x
>
> > My question is about whether to test for integerhood. Without that test,
> >  isPrime(3.7) returns true, and isPrime('44') returns False. I've gone with
> > testing for integerhood, and with returning None when n fails the test.
>
>Better to raise TypeError.

Like this?
if not isinstance(n, (int, long)):
         raise TypeError, "n must be an int or a long"

Thanks,

Dick




More information about the Tutor mailing list