xiannvytt 2021-04-02 16:41 采纳率: 50%
浏览 58
已采纳

初学者python代码实践

在print binary_search那里报错,第一天学习,有知道问题在哪里的大佬嘛

def binary_search(list,item):
    low = 0
    high=len(list)-1
    while low<=high:
        mid =(low+high)/2
        guess=list[mid]
        if guess==item:
            return mid
        if guess>item:
            high=mid-1
        else:
            low = mid+1
        return None
my_list = [1,3,5,7,9]
print binary_search(my_list, 3) 
print binary_search(my_list, -1) 

  • 写回答

4条回答 默认 最新

  • CSDN专家-Yang 2021-04-02 16:48
    关注

    这段代码报错, 有2个地方修改了一下, 不报错了, 但是结果为None, 你结合你的需求再完善下:

    1 print语句修改, 需要加括号

    2 mid 在计算后, 用list切片, 需要是整数

    def binary_search(list,item):
        low = 0
        high=len(list)-1
        while low<=high:
            mid =(low+high)/2
            guess=list[int(mid)]  # 索引里面需要是整数, 上面mid计算的是含小数点
            if guess==item:
                return mid
            if guess>item:
                high=mid-1
            else:
                low = mid+1
            return None
    my_list = [1,3,5,7,9]
    print(binary_search(my_list, 3))   # print语句的写法修改 
    print(binary_search(my_list, -1))  
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制