2012-03-23 3 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. Также, хотя я могу как-то запустить функцию chop из Python Shell, но я понятия не имею, как это сделать. Пожалуйста посоветуй. Спасибо.

+0

Какую команду вы используете, чтобы запустить его? –

+0

Я открываю IDLE, а затем создаю новый файл и просто нажимаю F5 для его запуска. –

+0

кажется, что отступ неправильный, функция chop должна находиться на том же уровне отступов, что и 'if __name__ == '__main __':'. – nye17

ответ

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))

И лет u обрабатывать печать в основном коде.

Другой способ, как предложено Irfy, что-то, как показано ниже (рассмотрим ваше имя файла chop.py) -

«$ питона Python 2.7.1 (r271: 86832, 31 июля 2011, 19:30: 53) [GCC 4.2.1 (на основе Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin Для получения дополнительной информации введите «помощь», «авторское право», «кредиты» или «лицензия». >>> импорт chop`

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

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

>>> print f