首页 > 解决方案 > 有人可以帮我解决我的python整数错误吗

问题描述

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

'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

标签: pythonpython-3.x

解决方案


问题出在代码中:

lastPos[midPos]

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

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

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

这是假设,您正在搜索的数组名为data。使用您的阵列名称。


推荐阅读