嗨,我有一个非常简单的Python程序来实现二进制搜索。
tup=input("enter tup:")
start=0
length=len[tup]
end=tup[length-1]
mid=(int(start)+int(end))/2
key=input("enter value to search")
def search(start,end,key):
if key==tup[mid]
print mid
else if key<tup[mid]
search(start,mid,key)
else if key>tup[mid]
search(mid,end,key)
else
return(-1)
我收到错误
File "binsearch.py", line 8
if key==tup[mid]
^
SyntaxError:语法无效
我相信我错过了一些微不足道的东西但却无法理解。如果您觉得还有其他错误,请告诉我。谢谢:))
答案 0 :(得分:5)
if key==tup[mid]
^
最后需要:
|
v
if key==tup[mid]:
声明的其余部分也存在同样的问题:
else if key<tup[mid]
^
search(start,mid,key)
else if key>tup[mid]
^
除了:
而不是else if
考虑使用Python的整齐elif
结构,例如,
elif key<tup[mid]:
等
答案 1 :(得分:3)
:
开始新块的语句(即您在下一行中增加缩进级别的语句)else if X
替换为elif X:
raw_input
代替input
作为后者eval
。return
是一个声明,而不是一个函数,因此返回值周围不需要()
。