PYTHON用递归和二分法求出列表中的数字。

用递归 二分法 在列表中找数字,最后count应该返回值为3,麻烦看下为何只返回1?

img

def digui(test_list,count,site,num): #test_list:源列表;count:遍历次数;site:列表位置;num:要查询数值

    if test_list[site] < num:
        test_list = test_list[site:]  # 中间值小于55,就取test_list[site]后面的列表
        count += 1  # 计数加1
    elif test_list[site] > num:
        test_list = test_list[:site]
        count += 1
    else:
        count += 1

    site = len(test_list) // 2

    if test_list[site] != num: #若未找到,进行递归
        digui(test_list,count,site,num)
    return count


print(digui(test_list=[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77],
            count=0,
            site=8,
            num=77))