recursion代码返回无

我真的不明白,为什么代码

def isIn(char, aStr): ms = len(aStr)/2 if aStr[ms] == char: print 'i am here now' return True elif char>aStr[ms] and not ms == len(aStr)-1: aStr = aStr[ms+1:] elif char <aStr[ms] and not ms == 0: aStr = aStr[0:ms] else: return False isIn(char, aStr) print isIn('a', 'ab') 

不停地返回None。 它打印“我现在在这里”,但它不会返回True,就像下一行所说的那样。 为什么?

你可能想要在最后一行的return

 return isIn(char, aStr) 

如果没有它,函数在没有看到return情况下直接返回None