二分查找。

li = [i for i in range(1,101)]
start_index = 0
end_index = len(li)-1
num = int(input('您要找的数是:')
while start_index <= end_index :
    mid_index = (start_index + end_index)//2
    if li[mid_index] ==38 :
        print('您找到了')
        break
    elif li[mid_index] > 38:
        end_index = mid_index -1
    elif li[mid_index]< 38:
        start_index = mid_index +1
else:
    print('很遗憾没有找到')
#函数改写
def binarysearch(l1,num):
    start_index = 0
    end_index = len(l1)-1
    while start_index<=end_index:
        mid_index = (start_index+end_index)//2
        if l1[mid_index] == num:
            return mid_index
        elif l1[mid_index] > num:
            end_index = mid_index - 1
        else:
            start_index = mid_index+1

    return -1
原文地址:https://www.cnblogs.com/kaiyaoweixiao/p/13292272.html