weixin_57589475 2022-07-11 17:22 采纳率: 0%
浏览 7

python语言下使用二分法,输入A=2时报错,输入其他的 可以正常输出,求解 这是为什么

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

当输入a=2时报错,Process finished with exit code -1
输入其他的都不会,用的python语言 ,为啥会这样 求解

nums=[1,3,5,7]
a=int(input("输入数字"))

left=0
right=len(nums)-1

while left<=right:
mid = (right+left)//2
if a>nums[mid]:
left=nums[mid]+1
elif a<nums[mid]:
right=nums[mid]-1
else:
print("目标在%s"%mid)
break
else:
print(right-1)

  • 写回答

1条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2022-07-11 18:24
    关注

    上界和下界应该是变成mid,而不是列表的值吧,

    nums=[1,3,5,7]
    a=int(input("输入数字"))
    
    left=0
    right=len(nums)-1
    
    while left<=right:
        mid = (right+left)//2
        if a>nums[mid]:
            left=mid+1
        elif a<nums[mid]:
            right=mid-1
        else:
            print("目标在%s"%mid)
            break
    else:
        print(right+1)
    
    评论

报告相同问题?

问题事件

  • 创建了问题 7月11日

悬赏问题

  • ¥15 有人会SIRIUS 5.8.0这个软件吗
  • ¥30 comsol仿真等离激元
  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
  • ¥20 关于 openpyxl 处理excel文件地问题
  • ¥15 MS中不知道高分子的构型怎么构建模型