我来自C#背景,我很难搞清楚如何运行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__将是我调用chop函数的主要方法,但它不起作用。我把它保存在test.py文件中。另外我虽然我可以以某种方式运行Python Shell中的chop函数,但我不知道该怎么做。请指教。谢谢。
答案 0 :(得分:3)
如果您位于脚本所在的目录中,请运行
python test.py
如果要从解释器运行chop函数,请在脚本所在的目录中启动解释器并执行
import test
test.chop([...]) # your array
应该这样做。如果没有,您的代码中可能会出现语法或其他错误,例如您在问题评论中已经讨论过的缩进。
答案 1 :(得分: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
Python 2.7.1(r271:86832,2011年7月31日,19:30:53)
[dclwin上的[GCC 4.2.1(基于Apple Inc. build 5658)(LLVM build 2335.15.00)]
输入“帮助”,“版权”,“信用”或“许可”以获取更多信息。
&gt;&gt;&gt; import chop`
>>> a = [1,2,3,4,5,6,7,8,9,10]
>>> f = chop.chop(a, 21, 0, len(a) -1))
>>> print f