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

#python

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

У меня это не работает, я ценю помощь!!!
Спасибо!

Комментарии:

1. Я предполагаю, что вы пытаетесь использовать sys.argv перед его импортом. Отмените импорт и сделайте отступ при вызове функции .

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

3. Кроме того, если sum не объединять строки вместе, у вас могут возникнуть трудности.

Ответ №1:

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

  • Нет отступа после if __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]))
  

Ответ №2:

  • Импортируйте 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]))