繁体   English   中英

有人可以帮我解决我的 python integer 错误吗

[英]Can someone help me with my python integer error

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

'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

问题出在代码中:

lastPos[midPos]

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM