def func(ls:list):
if len(ls) == 1:
return ls[0]
else:
func(ls[:len(ls) // 2])
# 预期返回列表中某个值,但是返回都是None
你这写的只有当ls的len为1时才返回第一个数据ls[0]
当ls的len > 1时,只是调用了该方法,并没有将其值返回,如果将else的内容return的话,最终的返回结果还会是第一个元素ls[0]。
你需要先理清楚需求到底是返回列表中的哪个值,不是所有的算法都需要用到递归的。