python - 为什么这个函数返回“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)
解决方案
该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!
推荐阅读
- python - redis python scan_iter 给出不同的键
- python - 在中文中通过 URL 抓取维基百科
- ionic-framework - 在 HTTP.get 中传递标头
- java - 将 notifyDataSetChanged 与 BaseAdapter 一起使用
- javascript - 这是 setTimeout 在 javascript 中的工作方式吗?
- r - 将列表中的值与数据框中的列名匹配以更新值
- rxjs - 订阅后如何重置最新组合
- .net - 从 PowerShell 使用 NuGet .NET 包真的这么麻烦吗?
- clojure - 为什么 filterv 的谓词需要没有副作用?
- javascript - 错误信息。“对象/数组类型的道具必须使用工厂函数返回默认值。”