救jiu叭,python二分法完成任务

img

def binary_search(list_: list, item):
    n = len(list_)
    left = 0
    right = n - 1
    while left <= right:
        mid = (left + right) // 2
        if list_[mid] == item:
            return mid
        elif item < list_[mid]:
            left = left
            right = mid - 1
        elif item > list_[mid]:
            left = mid + 1
            right = right
    return None

if __name__ == '__main__':
    l = [45, 65, 66, 72, 89]
    findnum = int(input())
    mark= binary_search(l,findnum)
    print(mark if mark else "该成绩找不到")

img

img