求编一个查姓名查学号代码

img

你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

mylist = []
with open(r'班级.txt', 'r', encoding='utf-8') as f:
    for line in f.readlines():
        n,s = line.strip().split(" ")
        mylist.append({"学号":int(n),"姓名":s})
print(mylist)

def search(li, item):
    for v in li:
        if v["姓名"]==item:
            return v
    return None

def binary_search(li, item):
    low = 0
    high = len(li) - 1
    while low <= high:
        mid = (high - low) // 2 + low    # 避免(high + low) / 2溢出
        guess = li[mid]["学号"]
        if guess > item:
            high = mid - 1
        elif guess < item:
            low = mid + 1
        else:
            return li[mid]
    return None

print(search(mylist, "ccc"))
print(binary_search(mylist, 5))

img

img