琐碎的间距错误,python?

时间:2013-11-14 21:56:33

标签: python binary

我甚至对这个问题感到尴尬,但是因为某种原因python不断给我一个错误我的“l”

    def binary_search(l, targetValue):
          low = 0, high = len(array)
          while low <= high:
                mid = (high - low)/2
                if l[mid] == targetValue:
                     return "we found it!"
                elif l[mid] > targetValue:
                     low = mid - 1;
                else        l[mid] < targetValue: #this line seems to be the problem
                     high = mid + 1;
          print "search failure :( "

2 个答案:

答案 0 :(得分:6)

虽然你的间距不正常,但实际上这不是问题。

问题是由于您将else与表达式一起使用。相反,您需要使用elif

elif l[mid] < targetValue:

或者,甚至更好,完全摆脱表达式,因为您已经测试了l[mid] == targetValuel[mid] > targetValue

else:

else表示“为了其他任何事情,请执行此操作”。因此,它不评估也不支持表达。

答案 1 :(得分:2)

您的最后一行“#this line似乎是问题”应该是ELIF或ELSE,之后没有声明。 例如,您不需要“ELSE {Condition}”。 ELSE的意思是“其他一切。”