2016-10-19 2 views
-1

Спасибо!Почему мой скрипт Python не работает через командную строку?

def hello(a,b): 
    print "hello and that's your sum:" 
    sum=a+b 
    print sum 
    import sys 

if __name__ == "__main__": 
hello(sys.argv[2]) 

Это не работает для меня, я ценю помощь !!! Спасибо!

+2

мое предположение, вы пытаетесь использовать 'sys.argv' перед импортом. Отменить импорт и отступ вызова функции. – MooingRawr

+2

Звонок привет с 1 аргументом также высок в списке подозреваемых. –

+2

Кроме того, если 'sum' представляет собой последовательность строк вместе, вам может быть трудно. – MooingRawr

ответ

4

Не видя ваше сообщение об ошибке, что трудно точно сказать, в чем проблема, но несколько вещей, которые не выскочит:

  • Нет отступа после если __name__ == «__main__»:
  • вы только передавая один аргумент в функцию hello, и для этого требуется два.
  • Модуль sys не отображается в области вне функции hello.

возможно больше, но опять же, требуется выход ошибки.

Вот что вы можете:

import sys 

def hello(a,b): 
    print "hello and that's your sum:" 
    sum=a+b 
    print sum 

if __name__ == "__main__": 
    hello(int(sys.argv[1]), int(sys.argv[2])) 
3
  • Импорт sys в глобальный масштаб, а не в конце функции.
  • Отправить два аргумента в hello, одного недостаточно.
  • Преобразуйте эти аргументы в поплавки, чтобы их можно было добавить в виде цифр.
  • Отступ должным образом. В python отступ делает вопрос.

Это должно привести к:

import sys 

def hello(a, b): 
    sum = a + b 
    print "hello and that's your sum:", sum 

if __name__ == "__main__": 
    hello(float(sys.argv[1]), float(sys.argv[2])) 
Смежные вопросы