Python 我的二进制搜索函数在未找到目标时返回none,尽管我将返回值指定为-1
当这个函数没有找到目标时,它会返回None而不是-1,这是为什么?如何解决它?在函数末尾的两个递归调用前面添加Python 我的二进制搜索函数在未找到目标时返回none,尽管我将返回值指定为-1,python,binary-search,Python,Binary Search,当这个函数没有找到目标时,它会返回None而不是-1,这是为什么?如何解决它?在函数末尾的两个递归调用前面添加return在函数末尾的两个递归调用前面添加return您忘记了第8行、第9行[递归调用]前面的return 因此,最终的代码是: def binary_search_recursive(array, target, start_index, end_index): middle_index=(start_index+end_index)//2 if start_index>end
return
在函数末尾的两个递归调用前面添加return
您忘记了第8行、第9行[递归调用]前面的return
因此,最终的代码是:
def binary_search_recursive(array, target, start_index, end_index):
middle_index=(start_index+end_index)//2
if start_index>end_index:
return -1
if array[middle_index]==target:
return middle_index
if array[middle_index]>target:
binary_search_recursive(array,target,start_index,middle_index-1)
else: binary_search_recursive(array,target,middle_index+1,end_index)
您忘记了第8行、第9行[递归调用]之前的
return
因此,最终的代码是:
def binary_search_recursive(array, target, start_index, end_index):
middle_index=(start_index+end_index)//2
if start_index>end_index:
return -1
if array[middle_index]==target:
return middle_index
if array[middle_index]>target:
binary_search_recursive(array,target,start_index,middle_index-1)
else: binary_search_recursive(array,target,middle_index+1,end_index)
我建议使用elif,只是为了更干净的代码。另外,如果您显示通过函数传递的参数也很好,我建议使用elif,只是为了更干净的代码。另外,如果显示通过函数传递的参数也会很好