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

Dick Moores rdm at rcblue.com
Sat Jul 19 11:03:16 CEST 2008


At 08:40 PM 7/18/2008, Kent Johnson wrote:
>On Fri, Jul 18, 2008 at 4:45 PM, Dick Moores <rdm at rcblue.com> wrote:
> > At 12:38 PM 7/18/2008, Kent Johnson wrote:
> >>
> >> On Fri, Jul 18, 2008 at 2:25 PM, Dick Moores <rdm at rcblue.com> wrote:
> >> > 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?
> >>
> >> x != 0 is an expression. The value of that expression is either True
> >> or False and is returned as the function result.
> >
> > Huh. Brand new to me. Thanks.
> >
> >>  It is better because
> >> it is concise and idiomatic and has exactly the same result as yours.
> >
> > Is it time to quote this again?
>
>No :-)

Aw, isn't it good to read it every so often? And I'll bet there are 
Tutorees out there who have never seen it.

> > In [15]: import this
> > The Zen of Python, by Tim Peters
> >
> > Explicit is better than implicit.  <--
>
>My way is explicit. It creates a value, either true or false, and
>returns it. Nothing is hidden.

OK, I'll give you that.

> > Readability counts.  <--
>
>Personally I think my way is more readable. It says what it means
>without any fluff. IMO it is explicit, readable, concise and to the
>point.

Well, readability is in the eye of the reader. Also, because I lived 
in Japan 30 years, I could throw a concise, explicit, and 
to-the-point Japanese sentence at you that you wouldn't understand at all.

>Maybe this will help you understand, it does the same thing:
>   value = x != 0
>   return value

I understand now, and will probably start using such things 
as    return  x != 0, if grumpily at first -- then I'll begin to 
think they're cool.

value = (x != 0)
return value

is clearer, IMO.

Thanks for your guidance, Kent.

Dick




More information about the Tutor mailing list