On Feb 14, 5:45 pm, "agent-s" <[EMAIL PROTECTED]> wrote: > 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)."
That takes care of only 1 of the two cases of returning None instead of True/False. > > btw Steven you are so witty I hope to one day pwn noobs on newsgroups > too. Wit has nothing to do with it. The fact that you are a Python noob is also irrelevant. Your problem statement was unintelligible, as is your response. What does "pwn" mean? -- http://mail.python.org/mailman/listinfo/python-list