2012-03-23 76 views
1

我来自C#背景,我很难搞清楚如何运行python脚本。运行python脚本的不同方法

所以,我写了这个简单的递归二进制搜索和网上找到,我可以做这样的事情:

def chop(array, search, lo, high): 

    if lo <= high: 
     middle = (high + lo) /2 
     if array[middle] == search: 
      return 'true' 
     elif search > array[middle]: 
      return chop(array, search, middle + 1, high) 
     else: 
      return chop(array, search, lo, middle -1) 
    return 'false' 



if __name__ == '__main__': 
    a = [1,2,3,4,5,6,7,8,9,10] 
    print chop(a, 21, 0, len(a) -1) 

的__main__将是我的主要方法从调用斩的功能,但它不能正常工作。我把它保存在一个test.py文件中。另外我虽然可以以某种方式运行Python Shell的chop函数,但我不知道如何去做。请指教。谢谢。

+0

? – 2012-03-23 00:16:23

+0

我打开IDLE,然后创建新文件,只需点击F5运行它。 – 2012-03-23 00:17:29

+0

看起来缩进是错误的,chop函数应该和'if __name__ =='__main __':'缩进相同的级别。 – nye17 2012-03-23 00:17:53

回答

3

如果你是在脚本所在的目录,只需运行

python test.py 

如果要运行来自解释者印章功能,启动该目录中的解释,其中的脚本位于和执行

import test 
test.chop([...]) # your array 

应该这样做。如果没有,你可能在你的代码中有语法或其他错误,比如你已经在你的问题的评论中讨论过的缩进。

1

一个办法 -

def chop(array, search, lo, high):

if lo <= high:

....

a = [1,2,3,4,5,6,7,8,9,10]

chop(a, 21, 0, len(a) -1))

和游你在主代码中处理打印。

另一种方式是作为Irfy建议,类似下面(考虑你的文件名是chop.py) -

“$蟒蛇 的Python 2.7.1(R271:86832,2011年7月31日19时30分: 53) 请在darwin 上输入“help”,“copyright”,“credits”或“license”以获取更多信息[GCC 4.2.1(基于Apple Inc.内部版本5658)(LLVM版本2335.15.00)]。 >>>进口chop`命令是否使用的是运行它

>>> a = [1,2,3,4,5,6,7,8,9,10]

>>> f = chop.chop(a, 21, 0, len(a) -1))

>>> print f