On Feb 13, 9:37 pm, "John Machin" <[EMAIL PROTECTED]> wrote: > On Feb 14, 4:15 pm, "agent-s" <[EMAIL PROTECTED]> 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. -- http://mail.python.org/mailman/listinfo/python-list