有人可以帮我解决我的python整数错误

时间:2019-11-10 14:13:26

标签: python python-3.x

我正在创建一个简单的二进制搜索算法,但不断出现此错误:

  

'int'无法下标

while not found and firstPos <= lastPos:
    midPos = (int(firstPos + lastPos)/2)

    if searchNumber == lastPos[midPos]:
        found = True

    else:
        if searchNumber < lastPos[midPos]:
            lastPos = midPos - 1
        else:
            firstPos = midPos + 1

1 个答案:

答案 0 :(得分:1)

问题出在代码中:

lastPos[midPos]

lastPos是一个数字。下标数字是不可能的。根据您的逻辑,您的代码应类似于:

if searchNumber == data[midPos]:
    found = True

else:
    if searchNumber < data[midPos]:
        lastPos = midPos - 1
    else:
        firstPos = midPos + 1

这是假设的,您正在搜索的数组名为数据。使用任何您的数组名称。