python not returning true

agent-s shanekwon at gmail.com
Wed Feb 14 01:45:41 EST 2007


On Feb 13, 9:37 pm, "John Machin" <sjmac... at lexicon.net> wrote:
> On Feb 14, 4:15 pm, "agent-s" <shanek... at gmail.com> wrote:
>
> > I have a function, generally described as so:
>
> > def function(args):
> >     if condition:
> >         if condition2:
> >             function(args+1)
>
>               return None>         elif condition3:
> >             print "text"
> >             return True
> >         else:
> >             return False
>
>        else:
>            return None
>
> There are two cases, indicated above, where you don't explicitly do a
> "return", so you fall off the end of the function, and Python returns
> None.
>
> Then when the function's caller tests the returned value, None is
> treated as logically false.
>
> > which is used in:
>
> > if function(args):
> >                                 print "ok"
>
> > so here basically "text" will print out when condition3 is true but it
> > will not print out "ok" when condition3 is true. When it's true it
> > should print out borth "text" and "ok"
>
> In the second last sentence, it is difficult to determine what you
> think is expected behaviour and what you say is the actual behaviour.
> In the last sentence, what does the first "it" refer to?
>
> If the knowledge about returning None doesn't help you, try some
> standard(??) techniques like inserting print statements or debugger
> break-points.
>
> HTH,
> John

Thanks! That was exactly what it was. I solved it by using "return
function(args+1)" instead of simply "function(args+1)."

btw Steven you are so witty I hope to one day pwn noobs on newsgroups
too.




More information about the Python-list mailing list