python - 二进制搜索和外部函数 'return'错误

标签 python function class syntax-error

我在类定义中的二进制搜索功能有一个小问题:

def searchExactIndex(self, key):
    

bottom = 0
top = self.keyc
found = False
    
    while bottom <= top and not found:
        middle = (bottom+top)/2
        
        if self.keys[middle] == key:
            found = True
        elif self.keys[middle] < key:
            bottom = middle + 1
        else:
            top = middle-1
return middle
除了运行该程序时,我得到的其他所有信息都在正常运行:

while bottom <= top and not found:

IndentationError: unexpected indent


为什么是这样?

最佳答案

看到错误,

IndentationError: unexpected indent

Python试图告诉您缩进代码的方式有问题,确实存在,您需要在searchExactIndex方法的前三行之前查看缩进。

除了缩进(在Python中很重要)外,您的代码看起来都不错。该函数应如下所示:
def searchExactIndex(self, key):
    bottom = 0
    top = self.keyc
    found = False

    while bottom <= top and not found:
        middle = (bottom+top)/2

        if self.keys[middle] == key:
            found = True
        elif self.keys[middle] < key:
            bottom = middle + 1
        else:
            top = middle-1

    return middle

注意设置了bottomtopfound的行:缩进到searchExactIndex方法内部。确保使用一种缩进类型(即仅空格),并保持一致。

关于python - 二进制搜索和外部函数 'return'错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21281212/

相关文章:

python - 如何告诉pbr在包中包含非代码文件

python - 如何设置 scipy.optimize.minimize() 中的容差?

postgresql - 从 PostgreSQL 中的 regclass 获取表名

swift - 你如何在 Swift 的函数中放置一个 guard 语句?

c++ - 继承中的基类是否复制到派生类中?

java - 具有自定义类的 XmlPullParser 不显示所有 RSS 提要

python - 如何在 Pandas Dataframe 中过滤掉今天的日期

javascript函数应用程序验证问题

Python设计——初始化、设置和获取类属性

python - seaborn中clustermap的标签