2015-10-11 2 views
1

как передать аргумент 10 9 - 5 + и получить ответ 6 через командную строку? У меня есть функция, но я не уверен, как передать ей аргументы, чтобы заставить ее работать.Пропустить arg для функции

Это функция:

def polish_calc(): 
    polish = "10 9 - 5 +" 
    print(int(polish[:2]) - int(polish[-7]) + int(polish[-3])) 
polish_calc() 

ответ

0

Если у вас есть сценарий some_script.py:

#!/usr/bin/env python 
import sys 
print sys.argv 

Тогда вы могли бы назвать это как так:

$ python some_script.py hello world 
['some_script.py', 'hello', 'world'] 

Для обратной польской записи, вы захотите разделить свои строки на токены и использовать стек для их хранения.

0

Посмотрите на sys.argv. Для добавления дополнительных аргументов проверьте модуль argparse. Он имеет некоторые классные функции анализа аргументов.

Вы можете поместить это в скрипте foo.py

#foo.py 
import sys 
def polish_calc(polish): 
    print(int(polish[:2]) - int(polish[-7]) + int(polish[-3])) 

if __name__ == "__main__": 
    if len(sys.argv) > 1: 
     script_arg = sys.argv[1] 
     polish_calc(script_arg) 

Назвать это можно сделать

> foo.py "10 9 - 5 +" 
> 6 
+0

Спасибо, так sys.argv [1] вызовите функцию? что такое script_arg? это встроенная функция? –

+0

no sys.argv - это список аргументов сценария. sys.argv [1] - второй элемент. script_arg - это имя переменной. – kmad1729

Смежные вопросы