-2

嗨,我正在编写一个非常简单的 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:无效的语法

我相信我错过了一些微不足道但无法弄清楚的事情。!如果你觉得还有其他错误,请告诉我。谢谢 :)

4

2 回答 2

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]:

等等

于 2012-07-05T11:58:36.077 回答
3
  • 您需要结束所有以新块开头的:语句(即在下一行增加缩进级别的语句)
  • 您需要替换else if Xelif X:
  • 无论用户输入什么,您都应该使用raw_input而不是input后者。eval
  • return is a statement, not a function, so you do not need () around the return value.
于 2012-07-05T11:59:42.163 回答