python not returning true

John Machin sjmachin at lexicon.net
Wed Feb 14 00:37:23 EST 2007


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




More information about the Python-list mailing list