python – 递归代码返回无

参见英文答案 > Why does my recursive python function return None?                                    4个
我真的不明白,为什么代码

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')

继续返回无.它打印’我现在在这里’,但它不会返回True,就像下一行所说的那样.为什么?

解决方法:

您可能希望在最后一行返回:

return isIn(char, aStr)

没有它,该函数在终止时返回None而不返回.

上一篇:EXCEL-解决表格被锁定和分组的冲突


下一篇:补充python操作excel示例xlwings常用函数