【问题标题】:Pass arg to function将 arg 传递给函数
【发布时间】:2015-10-12 00:55:22
【问题描述】:

我如何通过命令行传递参数10 9 - 5 +,并接收答案6?我有一个函数,但我不确定如何将参数传递给它以使其工作。

这是函数:

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

【问题讨论】:

    标签: python python-3.x argv


    【解决方案1】:

    如果你有脚本some_script.py:

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

    那么你可以这样称呼它:

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

    对于反向波兰表示法,您需要将字符串拆分为标记并使用堆栈来保存它们。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 谢谢,所以sys.argv[1]调用函数?什么是 script_arg?它是内置功能吗?
      • no sys.argv 是脚本的参数列表。 sys.argv[1] 是第二个元素。 script_arg 是变量名。
      猜你喜欢
      • 2017-02-25
      • 1970-01-01
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-30
      • 2021-04-25
      相关资源
      最近更新 更多