首页 > 解决方案 > 为什么这个函数返回“None”?

问题描述

def search(number, element, lista):
    if number >= len(lista):
        return "not find."
    elif lista[number] == element:
        return number
    else:
        search(number +1, element, lista)

r = search(0, 12, [2,5,1,6,8,12,24,3,7])
print(r)

标签: pythonpython-3.xrecursion

解决方案


else分支不会显式返回任何内容,因此它会隐式返回None. 在那里添加一个return,你应该没问题:

def search(number, element, lista):
    if number >= len(lista):
        return "not find."
    elif lista[number] == element:
        return number
    else:
        return search(number +1, element, lista) # Here!

推荐阅读