lbjcrazy 2021-10-25 21:29 采纳率: 80%
浏览 25
已结题

我的程序没有错,但是出现了错误提示

这个python提示我的错误我感觉我写的是对的,为什么会报错呢?
程序如下:

# 定义函数 binary_search 接受参数 list_sort, size, targer,并将查找结果返回
def binary_search(list_sort, size, targer):
    low = 0, high = size
    def dipole(low, high):
        if (low + high) % 2 == 0:
            return int((low+high)/2)
        else:
            return int(((low+high)-1)/2)
    while low <= high:
        mid = dipole(low, high)
        if list_sort[mid] < targer:
            high = mid - 1
        elif list_sort[mid] > targer:
            low = mid + 1
        else:
            return mid
try:
    print(binary_search([1,2,3,4,5,6,7,8,9], 9, 6))
except:
    print(-1)

报错的图片如下

img


有没有人解释一下

  • 写回答

1条回答 默认 最新

  • 「已注销」 2021-10-25 21:38
    关注
    # 定义函数 binary_search 接受参数 list_sort, size, targer,并将查找结果返回
    def binary_search(list_sort, size, targer):
        low = 0
        high = size
        mid=-1
        def dipole(low, high):
            if (low + high) % 2 == 0:
                return int((low+high)/2)
            else:
                return int(((low+high)-1)/2)
        while low <= high:
            mid = dipole(low, high)
            if list_sort[mid] < targer:
                low = mid + 1
            elif list_sort[mid] > targer:
                high = mid - 1
            else:
                return mid
    try:
        print(binary_search([1,2,3,4,5,6,7,8,9], 9, 6))
    except:
        print(-1)
    

    low=mid+1和high=mid-1写反了,还有mid应该初始化为-1,不然没找到的话就是None

    觉得有用的话采纳一下哈

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月3日
  • 已采纳回答 10月26日
  • 创建了问题 10月25日

悬赏问题

  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改